From b8c0ce1032adface7eb20b4ecc8c1000eaaa9e65 Mon Sep 17 00:00:00 2001 From: Björn Hagemeister Date: Tue, 22 Apr 2014 16:56:37 +0200 Subject: New feature: Change or set tutor manually during session + URL of IP - List of possible tutors, can be set in command line by starting server. --- src/server/main.cpp | 11 ++++++++++- src/server/mainwindow/mainwindow.cpp | 26 +++++++++++++++++++++++--- src/server/mainwindow/mainwindow.h | 3 ++- 3 files changed, 35 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/server/main.cpp b/src/server/main.cpp index e7c709a..191c234 100644 --- a/src/server/main.cpp +++ b/src/server/main.cpp @@ -1,8 +1,17 @@ +#include +#include #include "mainwindow/mainwindow.h" #include "util/util.h" int main(int argc, char** argv) { + QString ipListUrl; + if (argc != 2) + { + ipListUrl = ""; + } else { + ipListUrl = argv[1]; + } QApplication app(argc, argv); app.setOrganizationName("openslx"); app.setOrganizationDomain("openslx.org"); @@ -36,6 +45,6 @@ int main(int argc, char** argv) translator.load(":pvsmgr"); app.installTranslator(&translator); - MainWindow pvsmgr; + MainWindow pvsmgr(ipListUrl); return app.exec(); } diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp index b02cef8..cf2fe85 100644 --- a/src/server/mainwindow/mainwindow.cpp +++ b/src/server/mainwindow/mainwindow.cpp @@ -35,7 +35,7 @@ // Auto-generated ui class #include "ui_mainwindow.h" -MainWindow::MainWindow(QWidget* parent) : +MainWindow::MainWindow(QString ipListUrl, QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow), _tbIconSize(24), _tbArea(Qt::LeftToolBarArea), _buttonBlockTime(0) @@ -61,8 +61,11 @@ MainWindow::MainWindow(QWidget* parent) : ui->action_Lock->setStatusTip(tr("Lock or Unlock all Clients")); // Initialize FileDownloader. - _fileDownloader.connectSlot(this, SLOT(onTutorListDownloaded(QByteArray&))); - _fileDownloader.downloadFile(QUrl("http://132.230.8.113/openslx/ips.txt")); + if (!ipListUrl.isEmpty()) + { + _fileDownloader.connectSlot(this, SLOT(onTutorListDownloaded(QByteArray&))); + _fileDownloader.downloadFile(QUrl(ipListUrl)); + } // Close button in tool bar connect(ui->action_Exit, SIGNAL(triggered()), this, SLOT(onButtonExit())); @@ -71,6 +74,7 @@ MainWindow::MainWindow(QWidget* parent) : 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_SetAsTutor, SIGNAL(triggered()), this, SLOT(onButtonSetAsTutor())); 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())); @@ -627,6 +631,22 @@ void MainWindow::onButtonExit() this->close(); } +void MainWindow::onButtonSetAsTutor() +{ + bool selected = false; + for (QList::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + selected = (*it)->selected(); + if ((*it)->isTutor()) + (*it)->setTutor(false); + if (selected) + { + // This frame is marked to be Tutor. + (*it)->setTutor(true); + } + } +} + void MainWindow::onClientConnected(Client* client) { qDebug("ListenServer told MainWindow about new connection"); diff --git a/src/server/mainwindow/mainwindow.h b/src/server/mainwindow/mainwindow.h index 5d0bb18..2bba8c3 100644 --- a/src/server/mainwindow/mainwindow.h +++ b/src/server/mainwindow/mainwindow.h @@ -44,7 +44,7 @@ private: bool isValidClient(Client* client); public: - MainWindow(QWidget *parent = 0); + MainWindow(QString ipListUrl, QWidget *parent = 0); ~MainWindow(); protected: @@ -69,6 +69,7 @@ protected slots: void onButtonStopProjection(); void onButtonLock(bool checked); void onButtonExit(); + void onButtonSetAsTutor(); // connection frame void onPlaceFrame(ConnectionFrame* frame); void onFrameClicked(ConnectionFrame* frame); -- cgit v1.2.3-55-g7522