/* # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of # Freiburg # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your suggestions, praise, or complaints to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org/ */ #ifndef CLIENTFILESENDDIALOG_H_ #define CLIENTFILESENDDIALOG_H_ #include #include #include "pvsinterface.h" #include "ui_clientFileSendDialog.h" #include "ui_clientNicklistDialog.h" class ClientNicklistDialog: public QDialog, private Ui::ClientNicklistDialogClass { Q_OBJECT public: ClientNicklistDialog(QWidget *parent = 0); ~ClientNicklistDialog(); QString getNick(); bool isSendToAll() const { return _isSendToAll; } private Q_SLOTS: void sendToAllStateChanged(int state); private: OrgOpenslxPvsInterface *_ifaceDBus; bool _isSendToAll; }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// class ClientFileSendDialog: public QDialog, private Ui::ClientFileSendDialogClass { Q_OBJECT public: ClientFileSendDialog(QWidget *parent = 0); ~ClientFileSendDialog(); void open(); void open(QString nick); void open(QString nick, QString filename); void sendToAll(); void sendToAll(QString filename); private Q_SLOTS: void sendHeader(); void receiveAck(); void sendFile(); void close(); void canceled(); void error(QAbstractSocket::SocketError error); void multicastTransferStarted(qulonglong transferID); void multicastTransferProgress(qulonglong transferID, qulonglong bytes, qulonglong of); void multicastTransferFinished(qulonglong transferID); void multicastTransferFailed(qulonglong transferID, QString const& reason); private: QString formatSize(qint64 size); QTcpSocket *_socket; QFile *_file; qint64 _bytesToWrite; int div; ClientNicklistDialog *_clientNicklistDialog; OrgOpenslxPvsInterface *_ifaceDBus; QString _nickname; quint64 _transferID; bool _error; QString _reason; bool _isMulticast; }; #endif /* CLIENTFILESENDDIALOG_H_ */