diff options
author | sr | 2013-02-06 19:21:04 +0100 |
---|---|---|
committer | sr | 2013-02-06 19:21:04 +0100 |
commit | 49f3903f316ab7363b4543615d3231e1407a67ab (patch) | |
tree | 9f6ec082403f388c0e791de68b1743000a12bc49 /src/server/mainwindow/mainwindow.cpp | |
parent | ... (diff) | |
download | pvs2-49f3903f316ab7363b4543615d3231e1407a67ab.tar.gz pvs2-49f3903f316ab7363b4543615d3231e1407a67ab.tar.xz pvs2-49f3903f316ab7363b4543615d3231e1407a67ab.zip |
[SERVER] Add "stop projection" button
[SERVER] Don't show error message when VNC server stops as expected
[SERVER/CLIENT] Implement connection timeout of 15 seconds
Diffstat (limited to 'src/server/mainwindow/mainwindow.cpp')
-rw-r--r-- | src/server/mainwindow/mainwindow.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp index 710da3f..74e1e7d 100644 --- a/src/server/mainwindow/mainwindow.cpp +++ b/src/server/mainwindow/mainwindow.cpp @@ -65,6 +65,7 @@ MainWindow::MainWindow(QWidget* parent) : connect(ui->action_TutorToAll, SIGNAL(triggered()), this, SLOT(onButtonTutorToAll())); connect(ui->action_StudentToTutor, SIGNAL(triggered()), this, SLOT(onButtonStudentToTutor())); connect(ui->action_TutorToStudent, SIGNAL(triggered()), this, SLOT(onButtonTutorToStudent())); + connect(ui->action_StopProjection, SIGNAL(triggered()), this, SLOT(onButtonStopProjection())); connect(ui->action_Lock, SIGNAL(toggled(bool)), this, SLOT(onButtonLock(bool))); // Clicking the session name label shows the edit field for it connect(_sessionNameLabel, SIGNAL(clicked()), this, SLOT(onSessionNameClick())); @@ -565,6 +566,24 @@ void MainWindow::onButtonTutorToStudent() prepareForProjection(from, to); } +void MainWindow::onButtonStopProjection() +{ + const qint64 now = QDateTime::currentMSecsSinceEpoch(); + if (now < _buttonBlockTime) + return; + _buttonBlockTime = now + 3000; + // + NetworkMessage msg; + msg.setField(_ID, _VNCCLIENT); + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL) + continue; + c->sendMessage(msg); + } +} + void MainWindow::onButtonLock(bool checked) { NetworkMessage msg; @@ -769,7 +788,7 @@ void MainWindow::onVncServerStateChange(Client* client) c->setDesiredProjectionSource(0); } } - if (wasInterested) + if (wasInterested && QDateTime::currentMSecsSinceEpoch() < _buttonBlockTime) { QMessageBox::information(this, tr("Projection Error"), |