diff options
-rw-r--r-- | src/client/connectwindow/connectwindow.h | 7 | ||||
-rw-r--r-- | src/client/net/serverconnection.cpp | 2 | ||||
-rw-r--r-- | src/client/toolbar/toolbar.cpp | 15 | ||||
-rw-r--r-- | src/client/toolbar/toolbar.h | 1 | ||||
-rw-r--r-- | src/client/vnc/vncserver.cpp | 7 | ||||
-rw-r--r-- | src/client/vnc/vncserver.h | 1 |
6 files changed, 31 insertions, 2 deletions
diff --git a/src/client/connectwindow/connectwindow.h b/src/client/connectwindow/connectwindow.h index 2bc2f86..13983fa 100644 --- a/src/client/connectwindow/connectwindow.h +++ b/src/client/connectwindow/connectwindow.h @@ -25,6 +25,13 @@ class ServerConnection; +/** + * Class for handling the client connection. + * Display toolbar with menu bar for connect or disconnect to pvs manager and + * show current connection status. + * For connecting with manager, user is able to set sessionName. If connection works + * correctly flashy green checkmark is shown. + */ class ConnectWindow : public QDialog, private Ui_Dialog { Q_OBJECT diff --git a/src/client/net/serverconnection.cpp b/src/client/net/serverconnection.cpp index afc43aa..760b445 100644 --- a/src/client/net/serverconnection.cpp +++ b/src/client/net/serverconnection.cpp @@ -342,7 +342,7 @@ void ServerConnection::onVncViewerStartStop(const bool started, const int client _toServer.reset(); _toServer.setField(_ID, _VNCCLIENT); if (started) - _toServer.setField("ENABLED", QByteArray("1")); + _toServer.setField("ENABLED", QByteArray("1")); else _toServer.setField("ENABLED", QByteArray("0")); _toServer.setField("CLIENTID", QString::number(clientId)); diff --git a/src/client/toolbar/toolbar.cpp b/src/client/toolbar/toolbar.cpp index 34dafd5..8e80fe3 100644 --- a/src/client/toolbar/toolbar.cpp +++ b/src/client/toolbar/toolbar.cpp @@ -25,6 +25,7 @@ Toolbar::Toolbar(QWidget *parent) : _connectWindow = new ConnectWindow(NULL); connect(_connectWindow, SIGNAL(disconnect()), this, SLOT(onDoDisconnect())); connect(_connectWindow, SIGNAL(connected(ServerConnection*)), this, SLOT(onConnected(ServerConnection*))); + connect(VncServer::instance(), SIGNAL(started(int, QString&, QString&)), this, SLOT(onVncServerIsRunning(int, QString&, QString&))); // setupMenu(); setLocation(); @@ -110,7 +111,8 @@ void Toolbar::setBarVisible(bool shown) bool Toolbar::hideBar() { - if (_menu->isVisible()) // Don't hide window if any menu is open + // Don't hide window if any menu is open or VNC Server is running from this client. + if (_menu->isVisible() || VncServer::instance()->isVncServerRunning()) return false; setBarVisible(false); return true; @@ -158,6 +160,17 @@ void Toolbar::timerEvent(QTimerEvent* event) * Slots */ +void Toolbar::onVncServerIsRunning(int port, QString&, QString&) +{ + if (port > 0) + { + setBarVisible(true); + return; + } + hideBar(); + return; +} + void Toolbar::onDisconnected() { _connectWindow->setConnected(false); diff --git a/src/client/toolbar/toolbar.h b/src/client/toolbar/toolbar.h index 8887ca7..8a9da6f 100644 --- a/src/client/toolbar/toolbar.h +++ b/src/client/toolbar/toolbar.h @@ -68,6 +68,7 @@ protected: */ private slots: + void onVncServerIsRunning(int port, QString& ropass, QString& rwpass); void onDisconnected(); void onConnected(ServerConnection* connection); void onDoDisconnect(); diff --git a/src/client/vnc/vncserver.cpp b/src/client/vnc/vncserver.cpp index 3eca952..3cb640c 100644 --- a/src/client/vnc/vncserver.cpp +++ b/src/client/vnc/vncserver.cpp @@ -55,6 +55,13 @@ VncServer::~VncServer() // TODO Auto-generated destructor stub } +bool VncServer::isVncServerRunning() +{ + if (_port > 0) + return true; + return false; +} + void VncServer::start() { // Keep things clean diff --git a/src/client/vnc/vncserver.h b/src/client/vnc/vncserver.h index 2aae49c..790b295 100644 --- a/src/client/vnc/vncserver.h +++ b/src/client/vnc/vncserver.h @@ -31,6 +31,7 @@ private: public: static VncServer *instance(); + bool isVncServerRunning(); void start(); void stop(); |