summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Klinger2016-05-30 11:55:35 +0200
committerChristian Klinger2016-05-30 11:55:35 +0200
commitb5cc655b555d729a25de54d4edffba5e214d937e (patch)
tree7b5e5884eccf3d07fc987ce990f770718b7e758d /src
parentNeues Dozentenlogo. (diff)
downloadpvs2-b5cc655b555d729a25de54d4edffba5e214d937e.tar.gz
pvs2-b5cc655b555d729a25de54d4edffba5e214d937e.tar.xz
pvs2-b5cc655b555d729a25de54d4edffba5e214d937e.zip
Added examMode to server (this also changes the style of the toolbar)
Diffstat (limited to 'src')
-rw-r--r--src/server/connectionframe/connectionframe.cpp5
-rw-r--r--src/server/mainwindow/mainwindow.cpp22
-rw-r--r--src/server/util/global.cpp1
-rw-r--r--src/server/util/global.h4
4 files changed, 31 insertions, 1 deletions
diff --git a/src/server/connectionframe/connectionframe.cpp b/src/server/connectionframe/connectionframe.cpp
index 68160b5..e274bd5 100644
--- a/src/server/connectionframe/connectionframe.cpp
+++ b/src/server/connectionframe/connectionframe.cpp
@@ -16,6 +16,7 @@
#include "connectionframe.h"
#include "../net/client.h"
+#include "../util/global.h"
#include <QPixmap>
#include <QImage>
#include <cassert>
@@ -270,8 +271,10 @@ void ConnectionFrame::mouseDoubleClickEvent(QMouseEvent* event)
void ConnectionFrame::paintEvent(QPaintEvent *event)
{
QGroupBox::paintEvent(event);
- if (_remoteScreen.isNull())
+ if (_remoteScreen.isNull() || Global::isExam()) {
return;
+ }
+
QPainter painter(this);
painter.drawPixmap((this->width() - _remoteScreen.width()) / 2, 4, _remoteScreen);
event->accept();
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp
index c834957..28bf268 100644
--- a/src/server/mainwindow/mainwindow.cpp
+++ b/src/server/mainwindow/mainwindow.cpp
@@ -117,6 +117,28 @@ MainWindow::MainWindow(QWidget* parent) :
connect(ui->actionReload_Room_Configuration, SIGNAL(triggered()), this, SLOT(onButtonReloadRoomConfig()));
connect(ui->action_DeleteClient, SIGNAL(triggered()), this, SLOT(onDeleteClient()));
+ /* In exam-mode: disable most features */
+ SYSTEM_SETTINGS(conf);
+ if (conf.contains("examMode")) {
+ Global::setExam(conf.value("examMode").toBool());
+ }
+
+ if (Global::isExam()) {
+ qDebug() << "Exam-Mode!";
+ ui->action_TutorToAll->setVisible(false);
+ ui->action_StudentToTutor->setVisible(false);
+ ui->action_StudentToTutorExclusive->setVisible(false);
+ ui->action_TutorToStudent->setVisible(false);
+ ui->action_StopProjection->setVisible(false);
+
+ QLabel* examModeLabel = new QLabel("Klausur-\nModus");
+ examModeLabel->setObjectName("examModeLabel");
+ examModeLabel->setAlignment(Qt::AlignCenter);
+ examModeLabel->setFixedHeight(400);
+ ui->toolBar->insertWidget(ui->action_TutorToStudent, examModeLabel);
+ }
+
+
/* disable context-sensitive buttons by default */
_contextButtons
<< ui->action_DeleteClient
diff --git a/src/server/util/global.cpp b/src/server/util/global.cpp
index 39e72fb..bdb462f 100644
--- a/src/server/util/global.cpp
+++ b/src/server/util/global.cpp
@@ -48,3 +48,4 @@ const Room* Global::getCurrentRoom() {
}
}
bool Global::manager_only = false;
+bool Global::_isExam = false;
diff --git a/src/server/util/global.h b/src/server/util/global.h
index 4a71348..08ec00a 100644
--- a/src/server/util/global.h
+++ b/src/server/util/global.h
@@ -40,6 +40,8 @@ private:
static QMap<QString, Room*> _rooms;
static QString _currentRoom;
+ static bool _isExam;
+
public:
static const QString& sessionName() { return Global::_sessionName; }
static const QByteArray& sessionNameArray() { return Global::_sessionNameArray; }
@@ -53,6 +55,8 @@ public:
return _rooms;
}
+ static bool isExam() { return _isExam; }
+ static void setExam(bool b) { _isExam = b; }
static void setCurrentRoom(QString room);
static const QString& getCurrentRoomName() { return _currentRoom; }