From 9bacddf36631572b610f042e17b5ee631dfebbca Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Sun, 30 Oct 2022 12:03:43 +0100
Subject: Modernize cmake file and project structure a bit
---
src/client/clientapp/clientapp.cpp | 6 +-
src/client/connectwindow/connectwindow.cpp | 6 +-
src/client/connectwindow/connectwindow.h | 1 +
src/client/connectwindow/connectwindow.ui | 216 +++++++++++++
src/client/toolbar/toolbar.ui | 233 ++++++++++++++
src/server/mainwindow/mainwindow.cpp | 23 +-
src/server/mainwindow/mainwindow.ui | 339 +++++++++++++++++++++
src/server/numerickeyboard/numerickeyboard.ui | 173 +++++++++++
src/server/reloadroomwindow/reloadroomwindow.cpp | 25 +-
src/server/reloadroomwindow/reloadroomwindow.h | 15 +-
src/server/reloadroomwindow/reloadroomwindow.ui | 73 +++++
src/server/sessionnamewindow/sessionnamewindow.cpp | 2 +-
src/server/sessionnamewindow/sessionnamewindow.ui | 66 ++++
13 files changed, 1157 insertions(+), 21 deletions(-)
create mode 100644 src/client/connectwindow/connectwindow.ui
create mode 100644 src/client/toolbar/toolbar.ui
create mode 100644 src/server/mainwindow/mainwindow.ui
create mode 100644 src/server/numerickeyboard/numerickeyboard.ui
create mode 100644 src/server/reloadroomwindow/reloadroomwindow.ui
create mode 100644 src/server/sessionnamewindow/sessionnamewindow.ui
(limited to 'src')
diff --git a/src/client/clientapp/clientapp.cpp b/src/client/clientapp/clientapp.cpp
index 2447526..8131e6f 100644
--- a/src/client/clientapp/clientapp.cpp
+++ b/src/client/clientapp/clientapp.cpp
@@ -23,14 +23,14 @@ ClientApp::ClientApp(int& argc, char** argv)
// System strings
QTranslator *qtTranslator = new QTranslator(this);
if (!qtTranslator->load(QLocale::system(), "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath))) {
- qDebug() << "Could not load system string translations";
+ qDebug() << "Could not load system string translations" << QLocale::system() << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
} else {
installTranslator(qtTranslator);
}
// App specific
QTranslator *translator = new QTranslator(this);
- if (!translator->load(QLocale::system(), ":", "l_")) {
- qDebug() << "Could not load app translations";
+ if (!translator->load(QLocale::system(), ":/", "l_")) {
+ qDebug() << "Could not load app translations" << QLocale::system();
} else {
installTranslator(translator);
}
diff --git a/src/client/connectwindow/connectwindow.cpp b/src/client/connectwindow/connectwindow.cpp
index 7674cc2..8c47eea 100644
--- a/src/client/connectwindow/connectwindow.cpp
+++ b/src/client/connectwindow/connectwindow.cpp
@@ -12,11 +12,15 @@
#include "../net/serverconnection.h"
#include "../clientapp/clientapp.h"
#include "connectwindow.h"
-#include "ui_connect.h"
+#include "ui_connectwindow.h"
#define UDPBUFSIZ 9000
#define SALT_LEN 18
+namespace Ui {
+ class ConnectWindow;
+}
+
/**
* Initialize Connection Window.
* @param parent
diff --git a/src/client/connectwindow/connectwindow.h b/src/client/connectwindow/connectwindow.h
index 9fcaf4e..2df672d 100644
--- a/src/client/connectwindow/connectwindow.h
+++ b/src/client/connectwindow/connectwindow.h
@@ -28,6 +28,7 @@ namespace Ui
{
class ConnectWindow;
}
+
class ServerConnection;
/**
diff --git a/src/client/connectwindow/connectwindow.ui b/src/client/connectwindow/connectwindow.ui
new file mode 100644
index 0000000..0bfc654
--- /dev/null
+++ b/src/client/connectwindow/connectwindow.ui
@@ -0,0 +1,216 @@
+
+
+ ConnectWindow
+
+
+ Qt::WindowModal
+
+
+
+ 0
+ 0
+ 512
+ 233
+
+
+
+
+ 512
+ 92
+
+
+
+ Connect to PVS session
+
+
+ -
+
+
+ false
+
+
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Connection
+
+
+
-
+
+
+ Connect to
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Manual Connection
+
+
+
-
+
+
+ Session Name
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+ 94
+ 72
+
+
+
+ :/dark-green-check-mark.svg
+
+
+ true
+
+
+
+
+
+
+
+ -
+
+
+ 6
+
+
-
+
+
+ Close
+
+
+ false
+
+
+ false
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Connect
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/client/toolbar/toolbar.ui b/src/client/toolbar/toolbar.ui
new file mode 100644
index 0000000..9908dda
--- /dev/null
+++ b/src/client/toolbar/toolbar.ui
@@ -0,0 +1,233 @@
+
+
+ Toolbar
+
+
+
+ 0
+ 0
+ 281
+ 28
+
+
+
+ Form
+
+
+ #Toolbar {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);
+ border-radius: 0px;
+}
+QLabel {
+ background-color: none;
+}
+/* QPushButton */
+QPushButton {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);
+ border: 2px solid #8f8f91;
+ border-radius: 4px;
+ min-width: 80px;
+}
+QPushButton:hover {
+ border: 2px solid rgb(0, 170, 255);
+}
+QPushButton:pressed {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa);
+}
+QPushButton:checked {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #cacbce, stop: 1 #e6e7ea);
+}
+QPushButton::menu-indicator {
+ image: url(:/darrow16.svg);
+}
+
+
+
+
+ 1
+
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
+ 2
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 84
+ 24
+
+
+
+ Menu
+
+
+ Menu
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ color:red
+
+
+ Offline
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 19
+ 20
+
+
+
+
+ -
+
+
+
+ 16
+ 16
+
+
+
+
+ 16
+ 16
+
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 10
+ 75
+ true
+ true
+ true
+
+
+
+ color:#05f;
+
+
+ PVS
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 30
+ 24
+
+
+
+
+ 30
+ 16777215
+
+
+
+
+ 30
+ 0
+
+
+
+
+ 30
+ 0
+
+
+
+
+
+
+
+ :/hand-raise
+ :/hand-raise-red:/hand-raise
+
+
+
+ 22
+ 22
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp
index f6ff566..b63545f 100644
--- a/src/server/mainwindow/mainwindow.cpp
+++ b/src/server/mainwindow/mainwindow.cpp
@@ -38,7 +38,6 @@
#include "../util/platform/screensaver.h"
// Auto-generated ui class
#include "ui_mainwindow.h"
-#include "ui_reloadroom.h"
#include
#include
@@ -711,20 +710,20 @@ void MainWindow::startVncServerIfNecessary(int from)
void MainWindow::onButtonReloadRoomConfig()
{
- connect(_reloadWindow->ui->buttonBox, SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
- connect(_reloadWindow->ui->buttonBox, SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
+ connect(_reloadWindow->buttonBox(), SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
+ connect(_reloadWindow->buttonBox(), SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
QList keyList = serverApp->getRooms().keys();
for (QList::iterator it = keyList.begin(); it != keyList.end() ; it++) {
- _reloadWindow->ui->roomList->addItem(*it);
+ _reloadWindow->addRoom(*it);
}
_reloadWindow->show();
}
void MainWindow::onReloadRoomCancel()
{
- disconnect(_reloadWindow->ui->buttonBox, SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
- disconnect(_reloadWindow->ui->buttonBox, SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
- _reloadWindow->ui->roomList->clear();
+ disconnect(_reloadWindow->buttonBox(), SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
+ disconnect(_reloadWindow->buttonBox(), SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
+ _reloadWindow->clearRoomList();
_reloadWindow->hide();
}
@@ -785,7 +784,8 @@ void MainWindow::reloadCurrentRoom()
void MainWindow::onReloadRoomOk()
{
- if (_reloadWindow->ui->roomList->currentItem() == nullptr) {
+ QString roomToReload = _reloadWindow->currentRoom();
+ if (roomToReload.isEmpty()) {
QMessageBox::critical(this, "Warning", tr("No item selected, please select room!"), 0, 1);
return;
}
@@ -794,8 +794,8 @@ void MainWindow::onReloadRoomOk()
"Note that all clients will be deleted."),
QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
if (ret == QMessageBox::Yes) {
- disconnect(_reloadWindow->ui->buttonBox, SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
- disconnect(_reloadWindow->ui->buttonBox, SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
+ disconnect(_reloadWindow->buttonBox(), SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
+ disconnect(_reloadWindow->buttonBox(), SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
// Delete all clients.
for (QList::iterator it = _clientFrames.begin(); it != _clientFrames.end(); it++) {
(*it)->hide();
@@ -804,11 +804,10 @@ void MainWindow::onReloadRoomOk()
_clientFrames.clear();
// Load new room configuration.
- QString roomToReload = _reloadWindow->ui->roomList->currentItem()->data(0).toString();
serverApp->setCurrentRoom(roomToReload);
reloadCurrentRoom();
- _reloadWindow->ui->roomList->clear();
+ _reloadWindow->clearRoomList();
_reloadWindow->hide();
}
diff --git a/src/server/mainwindow/mainwindow.ui b/src/server/mainwindow/mainwindow.ui
new file mode 100644
index 0000000..62b92f7
--- /dev/null
+++ b/src/server/mainwindow/mainwindow.ui
@@ -0,0 +1,339 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 846
+ 801
+
+
+
+ PVS2 Manager
+
+
+ QToolButton {
+ border-radius: 8px;
+ padding: 4px;
+ margin: 5px;
+ border: 1px solid #777;
+}
+QToolButton:enabled {
+background-color: #f8f8f8;
+border: 1px solid #555;
+}
+QToolButton:enabled:hover {
+ background: qradialgradient(cx: 0.4, cy: -0.1,
+fx: 0.4, fy: -0.1,
+radius: 1.35, stop: 0 #fff, stop: 1 #ddd);
+}
+
+QToolButton:enabled:checked,
+QToolButton:enabled:pressed {
+background: qradialgradient(cx: 0.4, cy: -0.1,
+fx: 0.4, fy: -0.1,
+radius: 1.35, stop: 0 #888, stop: 1 #aaa);
+}
+QLabel#examModeLabel {
+ width: 71px;
+ margin: 5px;
+ border-radius: 8px;
+ background-color: rgb(170, 170, 170);
+}
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+ 3
+
+
-
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Sunken
+
+
+ 2
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 1
+ 1
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ toolBar
+
+
+ Qt::LeftToRight
+
+
+ true
+
+
+ false
+
+
+
+ 48
+ 48
+
+
+
+ LeftToolBarArea
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :/exit
+ :/exit:/exit
+
+
+ Exit
+
+
+ Exit
+
+
+ Ctrl+Q
+
+
+
+
+ true
+
+
+
+ :/lock:/lock
+
+
+ This will show a black screen on all connected clients, except the tutor's client.
+
+
+ Lock/Unlock all clients
+
+
+ Ctrl+A
+
+
+
+
+
+ :/student2tutor:/student2tutor
+
+
+ Stream currently selected client's screen content to the tutor's client.
+
+
+ Student's Screen to Tutor
+
+
+
+
+
+ :/student2tutorextension:/student2tutorextension
+
+
+ Stream currently selected client's screen content to the tutor's client while showing a locked black screen on all other clients.
+
+
+ Student's Screen to Tutor, others blanked
+
+
+
+
+
+ :/tutor2student:/tutor2student
+
+
+ Stream the tutor's screen contents to the currently selected client.
+
+
+ Tutor's Screen to Student
+
+
+
+
+
+ :/tutor2all:/tutor2all
+
+
+ Stream the tutor's screen contents to everyone.
+
+
+ Tutor's Screen to Everyone
+
+
+
+
+
+ :/reset:/reset
+
+
+ Unlock all clients, stop any running screen content streaming.
+
+
+ Reset
+
+
+ R
+
+
+
+
+
+ :/dozent:/dozent
+
+
+ Declare the currently selected client as tutor. The tutor will be excluded from screen locking and can be used as a fixed source/target for screen content streaming.
+
+
+ Declare tutor
+
+
+ T
+
+
+
+
+
+ :/trash:/trash
+
+
+ Delete currently selected client. Only allowed for disconnected clients.
+
+
+ Delete Client
+
+
+ Del
+
+
+ true
+
+
+
+
+
+ :/helpme:/helpme
+
+
+ Show this help text.
+
+
+ Help
+
+
+ F1
+
+
+ true
+
+
+
+
+
+ :/reloadClassroom:/reloadClassroom
+
+
+ This shows a list of preconfigured rooms which you can load. This will reset the currently shown layout and disconnect all clients.
+
+
+ Load a new room layout
+
+
+
+
+
+ :/lock-single:/lock-single
+
+
+ Lock or unlock the selected client only.
+
+
+ Lock/Unlock single client
+
+
+ L
+
+
+
+
+
+
+
+
+
+
diff --git a/src/server/numerickeyboard/numerickeyboard.ui b/src/server/numerickeyboard/numerickeyboard.ui
new file mode 100644
index 0000000..2f83a2b
--- /dev/null
+++ b/src/server/numerickeyboard/numerickeyboard.ui
@@ -0,0 +1,173 @@
+
+
+ NumericKeyboard
+
+
+
+ 0
+ 0
+ 438
+ 300
+
+
+
+
+ 0
+ 300
+
+
+
+ GroupBox
+
+
+ Keyboard
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 0
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ Del
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 1
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 8
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 4
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 2
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 5
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 7
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 3
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 6
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+ 9
+
+
+
+
+
+
+
+
diff --git a/src/server/reloadroomwindow/reloadroomwindow.cpp b/src/server/reloadroomwindow/reloadroomwindow.cpp
index 3070148..aea6a96 100644
--- a/src/server/reloadroomwindow/reloadroomwindow.cpp
+++ b/src/server/reloadroomwindow/reloadroomwindow.cpp
@@ -1,5 +1,5 @@
#include "reloadroomwindow.h"
-#include "ui_reloadroom.h"
+#include "ui_reloadroomwindow.h"
ReloadRoomWindow::ReloadRoomWindow(QWidget *parent) :
QDialog(parent), ui(new Ui::ReloadRoom)
@@ -11,3 +11,26 @@ ReloadRoomWindow::~ReloadRoomWindow()
{
delete ui;
}
+
+QDialogButtonBox *ReloadRoomWindow::buttonBox() const
+{
+ return ui->buttonBox;
+}
+
+void ReloadRoomWindow::addRoom(const QString &roomName)
+{
+ ui->roomList->addItem(roomName);
+}
+
+void ReloadRoomWindow::clearRoomList()
+{
+ ui->roomList->clear();
+}
+
+QString ReloadRoomWindow::currentRoom() const
+{
+ auto *cur = ui->roomList->currentItem();
+ if (cur == nullptr)
+ return QLatin1String();
+ return cur->data(0).toString();
+}
diff --git a/src/server/reloadroomwindow/reloadroomwindow.h b/src/server/reloadroomwindow/reloadroomwindow.h
index 2d2ae85..2baf53f 100644
--- a/src/server/reloadroomwindow/reloadroomwindow.h
+++ b/src/server/reloadroomwindow/reloadroomwindow.h
@@ -8,19 +8,28 @@ namespace Ui
class ReloadRoom;
}
+class QDialogButtonBox;
+
class ReloadRoomWindow : public QDialog
{
Q_OBJECT
public:
- explicit ReloadRoomWindow(QWidget *parent = 0);
+ explicit ReloadRoomWindow(QWidget *parent = nullptr);
~ReloadRoomWindow();
- Ui::ReloadRoom *ui;
- // void show();
+ QDialogButtonBox* buttonBox() const;
+
+ void addRoom(const QString &roomName);
+
+ void clearRoomList();
+
+ QString currentRoom() const;
private:
+ Ui::ReloadRoom *ui;
+
};
#endif
diff --git a/src/server/reloadroomwindow/reloadroomwindow.ui b/src/server/reloadroomwindow/reloadroomwindow.ui
new file mode 100644
index 0000000..2fb723e
--- /dev/null
+++ b/src/server/reloadroomwindow/reloadroomwindow.ui
@@ -0,0 +1,73 @@
+
+
+ ReloadRoom
+
+
+
+ 0
+ 0
+ 432
+ 400
+
+
+
+ Reload Room
+
+
+ true
+
+
+ -
+
+
+
+ 11
+
+
+
+ Choose room configuration to reload:
+
+
+
+ -
+
+
+
+ 20
+ PreferDefault
+
+
+
+ Qt::DefaultContextMenu
+
+
+ Qt::LeftToRight
+
+
+ QListView::Adjust
+
+
+
+ -
+
+
+
+ 20
+
+
+
+ * {font-size: 20pt;}
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+ false
+
+
+
+
+
+
+
+
diff --git a/src/server/sessionnamewindow/sessionnamewindow.cpp b/src/server/sessionnamewindow/sessionnamewindow.cpp
index 5671c39..f79efbf 100644
--- a/src/server/sessionnamewindow/sessionnamewindow.cpp
+++ b/src/server/sessionnamewindow/sessionnamewindow.cpp
@@ -18,7 +18,7 @@
#include "sessionnamewindow.h"
#include "../serverapp/serverapp.h"
#include "../numerickeyboard/numerickeyboard.h"
-#include "ui_sessionname.h"
+#include "ui_sessionnamewindow.h"
SessionNameWindow::SessionNameWindow(QWidget *parent) :
diff --git a/src/server/sessionnamewindow/sessionnamewindow.ui b/src/server/sessionnamewindow/sessionnamewindow.ui
new file mode 100644
index 0000000..299df3d
--- /dev/null
+++ b/src/server/sessionnamewindow/sessionnamewindow.ui
@@ -0,0 +1,66 @@
+
+
+ SessionName
+
+
+ Qt::ApplicationModal
+
+
+
+ 0
+ 0
+ 400
+ 226
+
+
+
+
+ 0
+ 0
+
+
+
+ Set session name
+
+
+ -
+
+
+ New session name
+
+
+
+ -
+
+
+
+ 14
+ 75
+ true
+ true
+
+
+
+
+ -
+
+
+ -
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+ -
+
+
+ Random name
+
+
+
+
+
+
+
+
--
cgit v1.2.3-55-g7522