summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client/connectwindow/connectwindow.h7
-rw-r--r--src/client/net/serverconnection.cpp2
-rw-r--r--src/client/toolbar/toolbar.cpp15
-rw-r--r--src/client/toolbar/toolbar.h1
-rw-r--r--src/client/vnc/vncserver.cpp7
-rw-r--r--src/client/vnc/vncserver.h1
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();