From 2ad0ca683dfade47078a2aafce9921ca238a9436 Mon Sep 17 00:00:00 2001 From: Sebastien Braun Date: Sat, 17 Jul 2010 16:43:08 +0200 Subject: Implement UI and pvsDaemon components for outgoing Multicast Transfer --- src/gui/clientFileSendDialog.cpp | 201 +++++++++++++++++++++++++++++++++++---- 1 file changed, 182 insertions(+), 19 deletions(-) (limited to 'src/gui/clientFileSendDialog.cpp') diff --git a/src/gui/clientFileSendDialog.cpp b/src/gui/clientFileSendDialog.cpp index ccb44b3..25e3eaa 100644 --- a/src/gui/clientFileSendDialog.cpp +++ b/src/gui/clientFileSendDialog.cpp @@ -22,6 +22,10 @@ ClientFileSendDialog::ClientFileSendDialog(QWidget *parent) : { setupUi(this); + _transferID = 0; + _error = false; + _isMulticast = false; + _file = NULL; _socket = NULL; _clientNicklistDialog = new ClientNicklistDialog(this); @@ -60,7 +64,15 @@ void ClientFileSendDialog::open() reject(); return; } - open(_clientNicklistDialog->getNick()); + + if (_clientNicklistDialog->isSendToAll()) + { + sendToAll(); + } + else + { + open(_clientNicklistDialog->getNick()); + } } void ClientFileSendDialog::open(QString nick) @@ -75,6 +87,70 @@ void ClientFileSendDialog::open(QString nick) open(nick, filename); } +void ClientFileSendDialog::sendToAll() +{ + QString filename = QFileDialog::getOpenFileName(this, tr("Send File"), QDir::homePath(), ""); + if (filename == "") + { + reject(); + return; + } + sendToAll(filename); +} + +void ClientFileSendDialog::sendToAll(QString filename) +{ + _isMulticast = true; + + connect(_ifaceDBus, SIGNAL(outgoingMulticastTransferStarted(qulonglong)), SLOT(multicastTransferStarted(qulonglong))); + connect(_ifaceDBus, SIGNAL(outgoingMulticastTransferProgress(qulonglong,qulonglong,qulonglong)), SLOT(multicastTransferProgress(qulonglong, qulonglong, qulonglong))); + connect(_ifaceDBus, SIGNAL(outgoingMulticastTransferFinished(qulonglong)), SLOT(multicastTransferFinished(qulonglong))); + connect(_ifaceDBus, SIGNAL(outgoingMulticastTransferFailed(qulonglong, QString const&)), SLOT(multicastTransferFailed(qulonglong, QString const&))); + + filenameLabel->setText(filename); + progressBar->setRange(0, 0); + labelNick->setText(tr("all")); + labelStatus->setText(tr("Waiting to start")); + + QString errorMessage("Backend error"); + + // We need to jump through a lot of hoops because this call is prone to time out, and + // QtDBus does not support specifying timeouts in generated interfaces. + QDBusMessage call = QDBusMessage::createMethodCall("org.openslx.pvs", "/", "org.openslx.pvs", "createMulticastTransfer"); + call << filename; + + QDBusMessage reply = _ifaceDBus->connection().call(call, QDBus::Block, 5000); + if (reply.type() == QDBusMessage::ErrorMessage) + { + QMessageBox::critical(this, tr("File Send error"), tr("Error communicating with backend: %1: %2").arg(reply.errorName()).arg(reply.errorMessage())); + reject(); + return; + } + else if (reply.type() == QDBusMessage::InvalidMessage) + { + QMessageBox::critical(this, tr("File Send error"), tr("Something went wrong while communicating with backend, but I don't know what.")); + reject(); + return; + } + else if (reply.type() == QDBusMessage::ReplyMessage) + { + QList args = reply.arguments(); + bool created = args.at(0).toBool(); + _transferID = args.at(1).toULongLong(); + QString errorMessage = args.at(2).toString(); + if (!created) + { + QMessageBox::critical(this, tr("File Send error"), tr("Could not create a multicast transfer: %1").arg(errorMessage)); + reject(); + return; + } + } + + connect(cancelButton, SIGNAL(clicked()), SLOT(canceled())); + + show(); +} + void ClientFileSendDialog::open(QString nick, QString filename) { // open file @@ -129,6 +205,8 @@ void ClientFileSendDialog::receiveAck() QString ack = QString::fromUtf8(_socket->readLine()); if (ack != "ok\n") { + _error = true; + _reason = tr("Receiver declined"); qDebug("[%s] Received nack!", metaObject()->className()); close(); return; @@ -160,27 +238,30 @@ void ClientFileSendDialog::sendFile() void ClientFileSendDialog::close() { - if (_file && _file->isOpen()) - { - _file->close(); - qDebug("[%s] File closed.", metaObject()->className()); - } - - if (_socket && _socket->isOpen()) + if (!_isMulticast) { - disconnect(_socket, SIGNAL(readyRead()), this, SLOT(receiveAck())); - disconnect(_socket, SIGNAL(bytesWritten(qint64)), this, SLOT(sendFile())); - disconnect(_socket, SIGNAL(disconnected()), this, SLOT(close())); - disconnect(_socket, SIGNAL(connected()), this, SLOT(sendHeader())); - disconnect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), - this, SLOT(error(QAbstractSocket::SocketError))); - _socket->disconnectFromHost(); - qDebug("[%s] Connection closed.", metaObject()->className()); + if (_file && _file->isOpen()) + { + _file->close(); + qDebug("[%s] File closed.", metaObject()->className()); + } + + if (_socket && _socket->isOpen()) + { + disconnect(_socket, SIGNAL(readyRead()), this, SLOT(receiveAck())); + disconnect(_socket, SIGNAL(bytesWritten(qint64)), this, SLOT(sendFile())); + disconnect(_socket, SIGNAL(disconnected()), this, SLOT(close())); + disconnect(_socket, SIGNAL(connected()), this, SLOT(sendHeader())); + disconnect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), + this, SLOT(error(QAbstractSocket::SocketError))); + _socket->disconnectFromHost(); + qDebug("[%s] Connection closed.", metaObject()->className()); + } } - disconnect(cancelButton, SIGNAL(clicked()), this, SLOT(close())); + disconnect(cancelButton, SIGNAL(clicked()), this, SLOT(canceled())); - if (_bytesToWrite == 0) + if (!_error) { accept(); QMessageBox::information(0, tr("PVS - File Transfer"), @@ -190,12 +271,26 @@ void ClientFileSendDialog::close() { reject(); QMessageBox::warning(0, tr("PVS - File Transfer"), - tr("File Transfer canceled!")); + tr("File Transfer canceled: %1").arg(_reason)); } } +void ClientFileSendDialog::canceled() +{ + if(_isMulticast) + { + _ifaceDBus->cancelOutgoingMulticastTransfer(_transferID); + } + + _error = true; + _reason = tr("You clicked 'Cancel'"); + close(); +} + void ClientFileSendDialog::error(QAbstractSocket::SocketError error) { + _error = true; + _reason = tr("Socket Error"); qDebug("[%s] Socket error: %i", metaObject()->className(), error); close(); } @@ -212,6 +307,55 @@ QString ClientFileSendDialog::formatSize(qint64 size) return QString("%1B").arg((qreal)size, 0, 'f',1); } +void ClientFileSendDialog::multicastTransferStarted(qulonglong transferID) +{ + qDebug() << "multicastTransferStarted(" << transferID << ")"; + if (transferID != _transferID) + { + return; + } + labelStatus->setText("Started"); +} + +void ClientFileSendDialog::multicastTransferProgress(qulonglong transferID, qulonglong bytes, qulonglong of) +{ + qDebug() << "multicastTransferProgress(" << transferID << bytes << of << ")"; + if (transferID != _transferID) + { + return; + } + + if(bytes < of) + { + labelStatus->setText("Transferring"); + progressBar->setRange(0, of); + progressBar->setValue(bytes); + } + else + { + labelStatus->setText("Waiting to finish"); + progressBar->setRange(0, 0); + } + + labelA->setText(formatSize(bytes)); + labelB->setText(formatSize(of)); +} + +void ClientFileSendDialog::multicastTransferFinished(quint64 transferID) +{ + qDebug() << "multicastTransferFinished(" << transferID << ")"; + qDebug("[%s] MulticastTransfer finished", metaObject()->className()); + close(); +} + +void ClientFileSendDialog::multicastTransferFailed(quint64 transferID, QString const& reason) +{ + qDebug() << "multicastTransferFailed(" << transferID << reason << ")"; + _error = true; + _reason = reason; + close(); +} + //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// @@ -235,6 +379,25 @@ ClientNicklistDialog::ClientNicklistDialog(QWidget *parent) : listWidget->addItems(nicknames); listWidget->setCurrentRow(0); + + connect(sendToAllCheckBox, SIGNAL(stateChanged(int)), SLOT(sendToAllStateChanged(int))); + + sendToAllCheckBox->setCheckState(Qt::Unchecked); + _isSendToAll = false; +} + +void ClientNicklistDialog::sendToAllStateChanged(int state) +{ + if (state) + { + listWidget->setEnabled(false); + _isSendToAll = true; + } + else + { + listWidget->setEnabled(true); + _isSendToAll = false; + } } ClientNicklistDialog::~ClientNicklistDialog() -- cgit v1.2.3-55-g7522 From ca61d21c6defb9553234c1fa5b0979c46542c676 Mon Sep 17 00:00:00 2001 From: Johann Latocha Date: Sat, 28 Aug 2010 03:17:08 +0200 Subject: Enhancement #587 --- CMakeLists.txt | 2 +- i18n/pvs_ar_JO.ts | 139 ++++++++++++++++++++++++++++++++++++-- i18n/pvs_de_DE.ts | 141 +++++++++++++++++++++++++++++++++++++-- i18n/pvs_es_MX.ts | 139 ++++++++++++++++++++++++++++++++++++-- i18n/pvs_fr_FR.ts | 139 ++++++++++++++++++++++++++++++++++++-- i18n/pvs_pl_PL.ts | 139 ++++++++++++++++++++++++++++++++++++-- i18n/pvsgui_ar_JO.ts | 66 +++++++++--------- i18n/pvsgui_de_DE.ts | 66 +++++++++--------- i18n/pvsgui_es_MX.ts | 66 +++++++++--------- i18n/pvsgui_fr_FR.ts | 66 +++++++++--------- i18n/pvsgui_pl_PL.ts | 66 +++++++++--------- org.openslx.pvs.service | 2 +- src/gui/clientChatDialog.cpp | 2 - src/gui/clientConfigDialog.cpp | 2 - src/gui/clientFileSendDialog.cpp | 2 - src/gui/clientVNCViewer.cpp | 2 - src/pvs.cpp | 9 ++- src/pvs.h | 2 +- src/pvsDaemon.cpp | 132 ++++++++++++++++-------------------- src/pvsgui.cpp | 34 ++++++---- src/pvsgui.h | 1 - src/version.h | 4 +- 22 files changed, 931 insertions(+), 290 deletions(-) (limited to 'src/gui/clientFileSendDialog.cpp') diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ac01c9..e364528 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -381,7 +381,7 @@ SET( CPACK_SET_DESTDIR "ON" ) SET( CPACK_PACKAGE_NAME "pvs" ) SET( CPACK_PACKAGE_VERSION_MAJOR "2" ) SET( CPACK_PACKAGE_VERSION_MINOR "0" ) -SET( CPACK_PACKAGE_VERSION_PATCH "1" ) +SET( CPACK_PACKAGE_VERSION_PATCH "3" ) SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Pool Video Switch" ) SET( CPACK_PACKAGE_DESCRIPTION "") SET( CPACK_PACKAGE_CONTACT "Simon Wittenberg " ) diff --git a/i18n/pvs_ar_JO.ts b/i18n/pvs_ar_JO.ts index 38bf578..a57e4bd 100644 --- a/i18n/pvs_ar_JO.ts +++ b/i18n/pvs_ar_JO.ts @@ -4,24 +4,155 @@ PVS - + Message - + VNC connection - + The host - + requested your screen! + + QObject + + + Version: + + + + + Usage: + + + + + <<option> <value>, ... > + + + + + Options: + + + + + -vncScriptFile <fullpath\filename> + + + + + Specifies a custom location for the vnc-start/stop-script. + + + + + If not specified, /usr/bin/pvs-vncsrv is expected. + + + + + -freq <seconds> + + + + + Specifies how long to wait until a reconnection attempt is made. + + + + + Default is 5. + + + + + -port <port> + + + + + Specifies on which port to run. + + + + + Default is + + + + + -h or --help + + + + + Shows this help text and exits. + + + + + -v or --version + + + + + Shows the current version and exits. + + + + + -d or --daemon + + + + + Start as daemon. + + + + + -c <string command>:<string value> + + + + + Sends the command and the optional value to a running PVS-Client. + + + + + Command and value may not contain spaces or colons. + + + + + The dividing colon is mandatory. + + + + + Prints out available commands to use with -c. + + + + + Use -h or --help to get a listing of all options. +-v or --version gives you the current version. + + + + + diff --git a/i18n/pvs_de_DE.ts b/i18n/pvs_de_DE.ts index 38bf578..a58199c 100644 --- a/i18n/pvs_de_DE.ts +++ b/i18n/pvs_de_DE.ts @@ -1,27 +1,158 @@ - + PVS - + Message - + VNC connection - + The host - + requested your screen! + + QObject + + + Version: + + + + + Usage: + + + + + <<option> <value>, ... > + + + + + Options: + + + + + -vncScriptFile <fullpath\filename> + + + + + Specifies a custom location for the vnc-start/stop-script. + + + + + If not specified, /usr/bin/pvs-vncsrv is expected. + + + + + -freq <seconds> + + + + + Specifies how long to wait until a reconnection attempt is made. + + + + + Default is 5. + + + + + -port <port> + + + + + Specifies on which port to run. + + + + + Default is + + + + + -h or --help + + + + + Shows this help text and exits. + + + + + -v or --version + + + + + Shows the current version and exits. + + + + + -d or --daemon + + + + + Start as daemon. + + + + + -c <string command>:<string value> + + + + + Sends the command and the optional value to a running PVS-Client. + + + + + Command and value may not contain spaces or colons. + + + + + The dividing colon is mandatory. + + + + + Prints out available commands to use with -c. + + + + + Use -h or --help to get a listing of all options. +-v or --version gives you the current version. + + + + + diff --git a/i18n/pvs_es_MX.ts b/i18n/pvs_es_MX.ts index 38bf578..a57e4bd 100644 --- a/i18n/pvs_es_MX.ts +++ b/i18n/pvs_es_MX.ts @@ -4,24 +4,155 @@ PVS - + Message - + VNC connection - + The host - + requested your screen! + + QObject + + + Version: + + + + + Usage: + + + + + <<option> <value>, ... > + + + + + Options: + + + + + -vncScriptFile <fullpath\filename> + + + + + Specifies a custom location for the vnc-start/stop-script. + + + + + If not specified, /usr/bin/pvs-vncsrv is expected. + + + + + -freq <seconds> + + + + + Specifies how long to wait until a reconnection attempt is made. + + + + + Default is 5. + + + + + -port <port> + + + + + Specifies on which port to run. + + + + + Default is + + + + + -h or --help + + + + + Shows this help text and exits. + + + + + -v or --version + + + + + Shows the current version and exits. + + + + + -d or --daemon + + + + + Start as daemon. + + + + + -c <string command>:<string value> + + + + + Sends the command and the optional value to a running PVS-Client. + + + + + Command and value may not contain spaces or colons. + + + + + The dividing colon is mandatory. + + + + + Prints out available commands to use with -c. + + + + + Use -h or --help to get a listing of all options. +-v or --version gives you the current version. + + + + + diff --git a/i18n/pvs_fr_FR.ts b/i18n/pvs_fr_FR.ts index 38bf578..a57e4bd 100644 --- a/i18n/pvs_fr_FR.ts +++ b/i18n/pvs_fr_FR.ts @@ -4,24 +4,155 @@ PVS - + Message - + VNC connection - + The host - + requested your screen! + + QObject + + + Version: + + + + + Usage: + + + + + <<option> <value>, ... > + + + + + Options: + + + + + -vncScriptFile <fullpath\filename> + + + + + Specifies a custom location for the vnc-start/stop-script. + + + + + If not specified, /usr/bin/pvs-vncsrv is expected. + + + + + -freq <seconds> + + + + + Specifies how long to wait until a reconnection attempt is made. + + + + + Default is 5. + + + + + -port <port> + + + + + Specifies on which port to run. + + + + + Default is + + + + + -h or --help + + + + + Shows this help text and exits. + + + + + -v or --version + + + + + Shows the current version and exits. + + + + + -d or --daemon + + + + + Start as daemon. + + + + + -c <string command>:<string value> + + + + + Sends the command and the optional value to a running PVS-Client. + + + + + Command and value may not contain spaces or colons. + + + + + The dividing colon is mandatory. + + + + + Prints out available commands to use with -c. + + + + + Use -h or --help to get a listing of all options. +-v or --version gives you the current version. + + + + + diff --git a/i18n/pvs_pl_PL.ts b/i18n/pvs_pl_PL.ts index 38bf578..a57e4bd 100644 --- a/i18n/pvs_pl_PL.ts +++ b/i18n/pvs_pl_PL.ts @@ -4,24 +4,155 @@ PVS - + Message - + VNC connection - + The host - + requested your screen! + + QObject + + + Version: + + + + + Usage: + + + + + <<option> <value>, ... > + + + + + Options: + + + + + -vncScriptFile <fullpath\filename> + + + + + Specifies a custom location for the vnc-start/stop-script. + + + + + If not specified, /usr/bin/pvs-vncsrv is expected. + + + + + -freq <seconds> + + + + + Specifies how long to wait until a reconnection attempt is made. + + + + + Default is 5. + + + + + -port <port> + + + + + Specifies on which port to run. + + + + + Default is + + + + + -h or --help + + + + + Shows this help text and exits. + + + + + -v or --version + + + + + Shows the current version and exits. + + + + + -d or --daemon + + + + + Start as daemon. + + + + + -c <string command>:<string value> + + + + + Sends the command and the optional value to a running PVS-Client. + + + + + Command and value may not contain spaces or colons. + + + + + The dividing colon is mandatory. + + + + + Prints out available commands to use with -c. + + + + + Use -h or --help to get a listing of all options. +-v or --version gives you the current version. + + + + + diff --git a/i18n/pvsgui_ar_JO.ts b/i18n/pvsgui_ar_JO.ts index 04d9717..83560ba 100644 --- a/i18n/pvsgui_ar_JO.ts +++ b/i18n/pvsgui_ar_JO.ts @@ -40,47 +40,47 @@ ClientChatDialog - + &Send File... - + has joined the chat. - + has left the chat. - + PVS File Transfer - + Send file ' - + ' to - + Connected. - + Disconnected. - + Message from < @@ -260,23 +260,23 @@ ClientFileSendDialog - + Open File - - + + PVS - File Transfer - + File Transfer complete. - + File Transfer canceled! @@ -399,77 +399,77 @@ p, li { white-space: pre-wrap; } - + &Disconnect - + C&hat - + &Send File - + &Config - + &Information - + &About - + &Quit - - - + + + PVS Connection - + Please enter password (If not needed leave blank): - + Are you sure you want to disconnect? - - + + PVS connection - - + + Connected to - - + + Disconnected - + New host available: diff --git a/i18n/pvsgui_de_DE.ts b/i18n/pvsgui_de_DE.ts index 544ebff..d49306a 100644 --- a/i18n/pvsgui_de_DE.ts +++ b/i18n/pvsgui_de_DE.ts @@ -40,47 +40,47 @@ ClientChatDialog - + &Send File... Datei &Senden... - + has joined the chat. ist dem Chat beigetreten. - + has left the chat. hat den Chat verlassen. - + PVS File Transfer PVS Dateiübertragung - + Send file ' Datei senden ' - + ' to ' an - + Connected. Verbunden. - + Disconnected. Getrennt. - + Message from < Nachricht von < @@ -260,23 +260,23 @@ ClientFileSendDialog - + Open File Datei Öffnen - - + + PVS - File Transfer PBS -Dateiübertragung - + File Transfer complete. Dateiübertragung beendet. - + File Transfer canceled! Dateiübertragung abgebrochen! @@ -407,77 +407,77 @@ p, li { white-space: pre-wrap; } Verbinden - + &Disconnect &Trennen - + C&hat - + &Send File Datei &Senden - + &Config &Konfiguration - + &Information &Information - + &About &Über - + &Quit &Beenden - - - + + + PVS Connection PVS Verbindung - + Please enter password (If not needed leave blank): Bitte geben sie ein Passwor ein (Falls nicht erforderlich einfach leer lassen): - + Are you sure you want to disconnect? Sind sie sicher dass sie die Verbindung trennen möchten? - - + + PVS connection PVS Verbindung - - + + Connected to Verbunden mit - - + + Disconnected Getrennt - + New host available: Neuer Host verfügbar: diff --git a/i18n/pvsgui_es_MX.ts b/i18n/pvsgui_es_MX.ts index 855ee9b..92db9d7 100644 --- a/i18n/pvsgui_es_MX.ts +++ b/i18n/pvsgui_es_MX.ts @@ -40,47 +40,47 @@ ClientChatDialog - + &Send File... Enviar archivo... - + has joined the chat. ha ingresado al chat. - + has left the chat. ha abandonado el chat - + PVS File Transfer PVS Transferencia de datos - + Send file ' Enviar archivo ' - + ' to ' a - + Connected. Conectado. - + Disconnected. Desconectado. - + Message from < Mensaje de < @@ -260,23 +260,23 @@ ClientFileSendDialog - + Open File Abrir archivo - - + + PVS - File Transfer PVS - Transferencia de datos - + File Transfer complete. La transferencia de datos ha sido completada. - + File Transfer canceled! La transferencia de datos ha sido cancelada! @@ -419,77 +419,77 @@ p, li { white-space: pre-wrap; } Conectar - + &Disconnect &Desconectar - + C&hat ??? - + &Send File &Enviar archivo - + &Config &Configuración - + &Information &Información - + &About &Acerca de - + &Quit &Cerrar - - - + + + PVS Connection PVS Connección - + Please enter password (If not needed leave blank): Porfavor ingrese una contraseña (Deje la seccion vacia si no lo necesita): - + Are you sure you want to disconnect? Realmente desea desconectarse? - - + + PVS connection PVS Connección - - + + Connected to Connectar a - - + + Disconnected Desconectado - + New host available: Nuevo Host disponible: diff --git a/i18n/pvsgui_fr_FR.ts b/i18n/pvsgui_fr_FR.ts index 04d9717..83560ba 100644 --- a/i18n/pvsgui_fr_FR.ts +++ b/i18n/pvsgui_fr_FR.ts @@ -40,47 +40,47 @@ ClientChatDialog - + &Send File... - + has joined the chat. - + has left the chat. - + PVS File Transfer - + Send file ' - + ' to - + Connected. - + Disconnected. - + Message from < @@ -260,23 +260,23 @@ ClientFileSendDialog - + Open File - - + + PVS - File Transfer - + File Transfer complete. - + File Transfer canceled! @@ -399,77 +399,77 @@ p, li { white-space: pre-wrap; } - + &Disconnect - + C&hat - + &Send File - + &Config - + &Information - + &About - + &Quit - - - + + + PVS Connection - + Please enter password (If not needed leave blank): - + Are you sure you want to disconnect? - - + + PVS connection - - + + Connected to - - + + Disconnected - + New host available: diff --git a/i18n/pvsgui_pl_PL.ts b/i18n/pvsgui_pl_PL.ts index 04d9717..83560ba 100644 --- a/i18n/pvsgui_pl_PL.ts +++ b/i18n/pvsgui_pl_PL.ts @@ -40,47 +40,47 @@ ClientChatDialog - + &Send File... - + has joined the chat. - + has left the chat. - + PVS File Transfer - + Send file ' - + ' to - + Connected. - + Disconnected. - + Message from < @@ -260,23 +260,23 @@ ClientFileSendDialog - + Open File - - + + PVS - File Transfer - + File Transfer complete. - + File Transfer canceled! @@ -399,77 +399,77 @@ p, li { white-space: pre-wrap; } - + &Disconnect - + C&hat - + &Send File - + &Config - + &Information - + &About - + &Quit - - - + + + PVS Connection - + Please enter password (If not needed leave blank): - + Are you sure you want to disconnect? - - + + PVS connection - - + + Connected to - - + + Disconnected - + New host available: diff --git a/org.openslx.pvs.service b/org.openslx.pvs.service index 0398081..91a3e67 100644 --- a/org.openslx.pvs.service +++ b/org.openslx.pvs.service @@ -1,4 +1,4 @@ [D-BUS Service] Name=org.openslx.pvs -Exec=@CMAKE_INSTALL_PREFIX@/bin/pvs +Exec=@CMAKE_INSTALL_PREFIX@/bin/pvs -d diff --git a/src/gui/clientChatDialog.cpp b/src/gui/clientChatDialog.cpp index 7c32790..163ac92 100644 --- a/src/gui/clientChatDialog.cpp +++ b/src/gui/clientChatDialog.cpp @@ -29,8 +29,6 @@ ClientChatDialog::ClientChatDialog(QWidget *parent) : // connect to D-Bus and get interface QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/chat", this); - dbus.registerService("org.openslx.pvsgui"); _ifaceDBus = new OrgOpenslxPvsInterface("org.openslx.pvs", "/", dbus, this); connect(_ifaceDBus, SIGNAL(chat_receive(QString, QString, QString)), this, SLOT(receive(QString, QString, QString))); diff --git a/src/gui/clientConfigDialog.cpp b/src/gui/clientConfigDialog.cpp index 3e1ee50..0ee5908 100644 --- a/src/gui/clientConfigDialog.cpp +++ b/src/gui/clientConfigDialog.cpp @@ -28,8 +28,6 @@ ClientConfigDialog::ClientConfigDialog(QWidget *parent) : // connect to D-Bus and get interface QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/config", this); - dbus.registerService("org.openslx.pvsgui"); _ifaceDBus = new OrgOpenslxPvsInterface("org.openslx.pvs", "/", dbus, this); } diff --git a/src/gui/clientFileSendDialog.cpp b/src/gui/clientFileSendDialog.cpp index ccb44b3..b4512c0 100644 --- a/src/gui/clientFileSendDialog.cpp +++ b/src/gui/clientFileSendDialog.cpp @@ -28,8 +28,6 @@ ClientFileSendDialog::ClientFileSendDialog(QWidget *parent) : // connect to D-Bus and get interface QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/filesend", this); - dbus.registerService("org.openslx.pvsgui"); _ifaceDBus = new OrgOpenslxPvsInterface("org.openslx.pvs", "/", dbus, this); // get current users name from backend diff --git a/src/gui/clientVNCViewer.cpp b/src/gui/clientVNCViewer.cpp index d6a218b..d794b0b 100644 --- a/src/gui/clientVNCViewer.cpp +++ b/src/gui/clientVNCViewer.cpp @@ -22,8 +22,6 @@ ClientVNCViewer::ClientVNCViewer(QWidget *parent) : { // connect to D-Bus and get interface QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/vnc", this); - dbus.registerService("org.openslx.pvsgui"); _ifaceDBus = new OrgOpenslxPvsInterface("org.openslx.pvs", "/", dbus, this); connect(_ifaceDBus, SIGNAL(project(QString, int, QString, bool, bool, int)), this, SLOT(open(QString, int, QString, bool, bool, int))); diff --git a/src/pvs.cpp b/src/pvs.cpp index 1c08be5..21b7bdf 100755 --- a/src/pvs.cpp +++ b/src/pvs.cpp @@ -53,8 +53,10 @@ PVS::PVS() : // connect to D-Bus new PvsAdaptor(this); QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/", this); - dbus.registerService("org.openslx.pvs"); + if (!dbus.registerObject("/", this)) + qDebug("[ERROR] DBus: Could not register object"); + if (!dbus.registerService("org.openslx.pvs")) + qDebug("[ERROR] DBus: Could not register service"); _sdClient = new PVSServiceDiscovery(this); @@ -552,9 +554,10 @@ int PVS::stopVNCScript() } } -void PVS::start() +bool PVS::start() { _pvsServerConnection->sendMessage(PVSMsg(PVSCOMMAND, "PROJECTING", "YES")); + return true; } void PVS::onConnected(QString name) diff --git a/src/pvs.h b/src/pvs.h index b6b5e65..1bb0747 100755 --- a/src/pvs.h +++ b/src/pvs.h @@ -69,7 +69,7 @@ public: void guiDelHost(QString host); public Q_SLOTS: - void start(); + bool start(); void quit(); void chat_send(QString nick_to, QString nick_from, QString msg); QString chat_getNickname(); diff --git a/src/pvsDaemon.cpp b/src/pvsDaemon.cpp index e9479df..b23bc57 100755 --- a/src/pvsDaemon.cpp +++ b/src/pvsDaemon.cpp @@ -9,14 +9,12 @@ #include "src/core/pvsChatClient.h" PVS *mainClient = NULL; - -// This define works as a switch whether to run as deamon or regular app -#define as_daemon +QTextStream qout(stdout); /// VERSION_STRING is defined in src/version.h void printVersion(bool doExit) { - + QTextStream qout(stdout); printf("Version:\t"VERSION_STRING"\n"); if (doExit) exit(0); @@ -25,30 +23,31 @@ void printVersion(bool doExit) /// outputs the full help text void printHelp() { - printf("**************************************************************\n"); - printf("\nPool Video Switch Client\n"); - printf("**************************************************************\n"); - printVersion(false); - printf("**************************************************************\n"); - printf("Usage:\tpoolVSClient <