From 76023ce8e99517ee47e5547d7f673a7c1300ddb8 Mon Sep 17 00:00:00 2001 From: Manuel Schneider Date: Tue, 22 Jul 2014 19:27:30 +0200 Subject: Fix broadcast bug. --- TODO | 3 ++- src/server/mainwindow/mainwindow.cpp | 24 ++++++++---------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/TODO b/TODO index 10a8f94..85ca877 100644 --- a/TODO +++ b/TODO @@ -56,7 +56,8 @@ anmelden, in der Zwischenzeit kann das System auf den default resetten....> --------------------------- P V S C L I E N T ---------------------------------- -[ ] Beim Client: Wenn Session-ID im laufenden betrieb geändert wird, fliegt der +[funktioniert bei mir] +Beim Client: Wenn Session-ID im laufenden betrieb geändert wird, fliegt der Client raus. Man kann als Client (dann) keine neue Session-ID setzen. [x] Informationsknopf im Clienten: diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp index 3365473..d62336d 100644 --- a/src/server/mainwindow/mainwindow.cpp +++ b/src/server/mainwindow/mainwindow.cpp @@ -650,27 +650,19 @@ void MainWindow::onButtonTutorToAll() QMessageBox::critical(this, tr("Projection"), sStrNoDestAv); else { - DisableButtons(); - - if (_mode != Mode::Broadcast) + if (_mode == Mode::Broadcast) { - // Set all clients as watchers - for (QList::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) - { - if ((*it)->client() != NULL && (*it)->client() != getClientFromId(_streamingSource)){ - (*it)->client()->setDesiredProjectionSource(getTutorFrame()->client()->id()); - } - - } - } - else // If this mode is already active - { - // Stop reset everything + // If this mode is already active, reset everything reset(); - _mode = Mode::None; return; } + // Set all clients as watchers of tutor. Except for the tutors desired source, which hase to be none + for (QList::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + if ((*it)->client() != NULL) + (*it)->client()->setDesiredProjectionSource((*it)->client() == getTutorFrame()->client() ? NO_SOURCE : getTutorFrame()->client()->id()); + + DisableButtons(); _mode = Mode::Broadcast; startVncServerIfNecessary(getTutorFrame()->client()->id()); } -- cgit v1.2.3-55-g7522