summaryrefslogtreecommitdiffstats
path: root/src/server/mainwindow/mainwindow.cpp
diff options
context:
space:
mode:
authorManuel Schneider2014-05-20 14:47:42 +0200
committerManuel Schneider2014-05-20 14:47:42 +0200
commit58646932664b6ab9014a410dc75dd443fb4f58b9 (patch)
treea4a1f6f8b414abfa16dba6145e9c8dffb542d2c5 /src/server/mainwindow/mainwindow.cpp
parentMerge branch 'master' of git.openslx.org:pvs2 (diff)
downloadpvs2-58646932664b6ab9014a410dc75dd443fb4f58b9.tar.gz
pvs2-58646932664b6ab9014a410dc75dd443fb4f58b9.tar.xz
pvs2-58646932664b6ab9014a410dc75dd443fb4f58b9.zip
Remove any knowledge of Networkmesage in Mainwindow
Diffstat (limited to 'src/server/mainwindow/mainwindow.cpp')
-rw-r--r--src/server/mainwindow/mainwindow.cpp61
1 files changed, 16 insertions, 45 deletions
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp
index 83a424e..8ca00a0 100644
--- a/src/server/mainwindow/mainwindow.cpp
+++ b/src/server/mainwindow/mainwindow.cpp
@@ -28,7 +28,6 @@
#include "../net/listenserver.h"
#include "../net/client.h"
#include "../net/discoverylistener.h"
-#include "../../shared/networkmessage.h"
#include "../net/filedownloader.h"
// Others
#include "../../shared/settings.h"
@@ -597,8 +596,8 @@ void MainWindow::onButtonStudentToTutorExclusive()
/***************************************************************************//**
* Handle Button StopProjection.
- * Set ProjectionSource of each client to false and create a NetworkMessage to
- * stop the active VNC Server and the active VNC Client(s).
+ * Set ProjectionSource of each client to false, stop the active VNC Server
+ * and the active VNC Client(s).
*/
void MainWindow::onButtonStopProjection()
{
@@ -610,47 +609,38 @@ void MainWindow::onButtonStopProjection()
c->setDesiredProjectionSource(0);
c->setProjectionSource(false);
}
- NetworkMessage stopVncClientmsg;
- NetworkMessage stopVncServermsg;
- stopVncClientmsg.setField(_ID, _VNCCLIENT);
- stopVncServermsg.setField(_ID, _VNCSERVER);
+
for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
{
Client *c = (**it).client();
if (c == NULL)
continue;
- c->sendMessage(stopVncClientmsg);
- c->sendMessage(stopVncServermsg);
+ c->stopVncClient();
+ c->stopVncServer();
}
}
/***************************************************************************//**
* Handle button to lock or unlock screens of client(s).
- * If already locked, do nothing, else create a NetworkMessage to lock (checked) or
- * unlock (!checked) the client(s), except the tutor.
+ * If already locked, do nothing, else lock or unlock the clients, except the
+ * tutor.
* @param checked
*/
void MainWindow::onButtonLock(bool checked)
{
- NetworkMessage msg;
- msg.setField(_ID, _LOCK);
- if (checked)
- msg.setField("ENABLE", QByteArray("1"));
- else
- msg.setField("ENABLE", QByteArray("0"));
for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
{
- Client *c = (**it).client();
-
// Check if client is Tutor or the manager is also running on this machine.
bool isManagerMachine = false;
foreach (const QHostAddress &address, QNetworkInterface::allAddresses())
- if (address != QHostAddress(QHostAddress::LocalHost) && c != NULL && c->ip() == address.toString())
+ if (address != QHostAddress(QHostAddress::LocalHost)
+ && (*it)->client() != NULL
+ && (*it)->client()->ip() == address.toString())
isManagerMachine = true;
- if (c == NULL || (**it).isTutor() || isManagerMachine)
+ if ((*it)->client() == NULL || (*it)->isTutor() || isManagerMachine)
continue; // Don't lock the tutor or the manager running machine.
- c->sendMessage(msg);
+ (*it)->client()->lockScreen(checked);
}
}
@@ -815,29 +805,17 @@ void MainWindow::onClientAuthenticated(Client* client)
// Assign client instance
cf->assignClient(client);
// ################
- NetworkMessage msg;
// If clients are currently locked, tell this new client
if (ui->action_Lock->isChecked())
- {
- msg.reset();
- msg.setField(_ID, _LOCK);
- msg.setField("ENABLE", QByteArray("1"));
- client->sendMessage(msg);
- }
+ client->lockScreen(true);
+
// Same for VNC projections
for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
{
Client *c = (**it).client();
if (c != NULL && c != client && c->isActiveVncServer() && c->isProjectionSource())
{
- msg.reset();
- msg.setField(_ID, _VNCCLIENT);
- msg.setField("HOST", c->ip());
- msg.setField("PORT", QString::number(c->vncPort()));
- msg.setField("ROPASS", c->vncRoPass());
- msg.setField("CLIENTID", QString::number(c->id()));
- msg.setField("CAPTION", c->name() + " @ " + c->host());
- client->sendMessage(msg);
+ c->startVncClient(c->ip(), c->vncPort(), c->vncRoPass(), c->id(), c->name() + " @ " + c->host());
client->setDesiredProjectionSource(c->id());
break;
}
@@ -857,13 +835,6 @@ void MainWindow::onVncServerStateChange(Client* client)
if (client->vncPort() > 0)
{
// VNC Server started on some client - start projection on all clients interested in that client's screen
- NetworkMessage msg;
- msg.setField(_ID, _VNCCLIENT);
- msg.setField("HOST", client->ip());
- msg.setField("PORT", QString::number(client->vncPort()));
- msg.setField("ROPASS", client->vncRoPass());
- msg.setField("CLIENTID", QString::number(client->id()));
- msg.setField("CAPTION", client->name() + " @ " + client->host());
for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
{
Client *c = (**it).client();
@@ -873,7 +844,7 @@ void MainWindow::onVncServerStateChange(Client* client)
continue; // Already watching this client
if (c->desiredProjectionSource() != client->id() && !client->isProjectionSource())
continue; // Not interested
- c->sendMessage(msg);
+ c->startVncClient(client->ip(), client->vncPort(), client->vncRoPass(), client->id(), client->name() + " @ " + client->host());
}
}
else