From 18564ae28f17b447ccd14a98743ebcb195138dae Mon Sep 17 00:00:00 2001
From: Björn Hagemeister
Date: Tue, 5 Aug 2014 15:36:12 +0200
Subject: Started including button for reloading room configuration by choosing
your own room first. Is not working right now.
---
gui/server_normal/mainwindow.ui | 13 +++++++++
gui/server_normal/reloadroom.ui | 61 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+)
create mode 100644 gui/server_normal/reloadroom.ui
(limited to 'gui/server_normal')
diff --git a/gui/server_normal/mainwindow.ui b/gui/server_normal/mainwindow.ui
index fe8ff10..fe87433 100644
--- a/gui/server_normal/mainwindow.ui
+++ b/gui/server_normal/mainwindow.ui
@@ -113,6 +113,7 @@
+
@@ -221,6 +222,18 @@
true
+
+
+
+ :/refresh:/refresh
+
+
+ Reload Room Configuration
+
+
+ Reload Room Configuration
+
+
diff --git a/gui/server_normal/reloadroom.ui b/gui/server_normal/reloadroom.ui
new file mode 100644
index 0000000..ab120a7
--- /dev/null
+++ b/gui/server_normal/reloadroom.ui
@@ -0,0 +1,61 @@
+
+
+ ScrollArea
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ ScrollArea
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 398
+ 298
+
+
+
+
+
+ 60
+ 10
+ 281
+ 20
+
+
+
+ Choose room configuration to reload:
+
+
+
+
+
+ 210
+ 260
+ 181
+ 27
+
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+ true
+
+
+
+
+
+
+
--
cgit v1.2.3-55-g7522
From 07fba5a835228f95ff6eec8419c905e4586bb56d Mon Sep 17 00:00:00 2001
From: Björn Hagemeister
Date: Mon, 25 Aug 2014 14:57:41 +0200
Subject: New Feature: Button for reloading room configuration of choosable
room.
---
gui/server_normal/reloadroom.ui | 35 +++++++--
pvs2.config | 1 +
pvs2.creator | 1 +
pvs2.files | 90 ++++++++++++++++++++++++
pvs2.includes | 16 +++++
src/server/mainwindow/mainwindow.cpp | 82 +++++++++++++++++++--
src/server/mainwindow/mainwindow.h | 6 +-
src/server/reloadroomwindow/reloadroomwindow.cpp | 16 -----
src/server/reloadroomwindow/reloadroomwindow.h | 8 +--
9 files changed, 220 insertions(+), 35 deletions(-)
create mode 100644 pvs2.config
create mode 100644 pvs2.creator
create mode 100644 pvs2.files
create mode 100644 pvs2.includes
(limited to 'gui/server_normal')
diff --git a/gui/server_normal/reloadroom.ui b/gui/server_normal/reloadroom.ui
index ab120a7..2013ed9 100644
--- a/gui/server_normal/reloadroom.ui
+++ b/gui/server_normal/reloadroom.ui
@@ -1,7 +1,7 @@
- ScrollArea
-
+ ReloadRoom
+
0
@@ -11,12 +11,12 @@
- ScrollArea
+ Reload Room
-
+
true
-
+
0
@@ -54,6 +54,31 @@
true
+
+
+
+ 70
+ 50
+ 256
+ 192
+
+
+
+
+ 20
+ PreferDefault
+
+
+
+ Qt::DefaultContextMenu
+
+
+ Qt::LeftToRight
+
+
+ QListView::Adjust
+
+
diff --git a/pvs2.config b/pvs2.config
new file mode 100644
index 0000000..8cec188
--- /dev/null
+++ b/pvs2.config
@@ -0,0 +1 @@
+// ADD PREDEFINED MACROS HERE!
diff --git a/pvs2.creator b/pvs2.creator
new file mode 100644
index 0000000..e94cbbd
--- /dev/null
+++ b/pvs2.creator
@@ -0,0 +1 @@
+[General]
diff --git a/pvs2.files b/pvs2.files
new file mode 100644
index 0000000..1c0e283
--- /dev/null
+++ b/pvs2.files
@@ -0,0 +1,90 @@
+build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
+build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
+build/src/client/connectwindow/moc_connectwindow.cxx
+build/src/client/net/moc_serverconnection.cxx
+build/src/client/net/moc_serverdiscovery.cxx
+build/src/client/toolbar/moc_toolbar.cxx
+build/src/client/util/platform/moc_blankscreen.cxx
+build/src/client/util/moc_util.cxx
+build/src/client/vnc/moc_vncserver.cxx
+build/src/client/vnc/moc_vncthread.cxx
+build/src/client/vnc/moc_vncwindow.cxx
+build/src/server/clicklabel/moc_clicklabel.cxx
+build/src/server/connectionframe/moc_connectionframe.cxx
+build/src/server/helpwindow/moc_helpwindow.cxx
+build/src/server/mainwindow/moc_mainwindow.cxx
+build/src/server/net/moc_certmanager.cxx
+build/src/server/net/moc_client.cxx
+build/src/server/net/moc_discoverylistener.cxx
+build/src/server/net/moc_filedownloader.cxx
+build/src/server/net/moc_listenserver.cxx
+build/src/server/net/moc_sslserver.cxx
+build/src/server/reloadroomwindow/moc_reloadroomwindow.cxx
+build/src/server/reloadwindow/moc_reloadwindow.cxx
+build/src/server/sessionnamewindow/moc_sessionnamewindow.cxx
+build/src/server/util/moc_global.cxx
+build/src/server/util/moc_util.cxx
+build/qrc_pvsclient.cxx
+build/qrc_pvsmgr.cxx
+build/ui_connect.h
+build/ui_help.h
+build/ui_mainwindow.h
+build/ui_reloadroom.h
+build/ui_sessionname.h
+build/ui_toolbar.h
+src/client/connectwindow/connectwindow.cpp
+src/client/connectwindow/connectwindow.h
+src/client/net/serverconnection.cpp
+src/client/net/serverconnection.h
+src/client/net/serverdiscovery.cpp
+src/client/net/serverdiscovery.h
+src/client/toolbar/toolbar.cpp
+src/client/toolbar/toolbar.h
+src/client/util/platform/blankscreen.h
+src/client/util/platform/blankscreen_Win32.cpp
+src/client/util/platform/blankscreen_X11.cpp
+src/client/util/util.cpp
+src/client/util/util.h
+src/client/vnc/vncserver.cpp
+src/client/vnc/vncserver.h
+src/client/vnc/vncthread.cpp
+src/client/vnc/vncthread.h
+src/client/vnc/vncwindow.cpp
+src/client/vnc/vncwindow.h
+src/client/main.cpp
+src/server/clicklabel/clicklabel.cpp
+src/server/clicklabel/clicklabel.h
+src/server/connectionframe/connectionframe.cpp
+src/server/connectionframe/connectionframe.h
+src/server/helpwindow/helpwindow.cpp
+src/server/helpwindow/helpwindow.h
+src/server/mainwindow/mainwindow.cpp
+src/server/mainwindow/mainwindow.h
+src/server/net/certmanager.cpp
+src/server/net/certmanager.h
+src/server/net/client.cpp
+src/server/net/client.h
+src/server/net/discoverylistener.cpp
+src/server/net/discoverylistener.h
+src/server/net/filedownloader.cpp
+src/server/net/filedownloader.h
+src/server/net/listenserver.cpp
+src/server/net/listenserver.h
+src/server/net/sslserver.cpp
+src/server/net/sslserver.h
+src/server/reloadroomwindow/reloadroomwindow.cpp
+src/server/reloadroomwindow/reloadroomwindow.h
+src/server/sessionnamewindow/sessionnamewindow.cpp
+src/server/sessionnamewindow/sessionnamewindow.h
+src/server/util/global.cpp
+src/server/util/global.h
+src/server/util/util.cpp
+src/server/util/util.h
+src/server/main.cpp
+src/shared/network.cpp
+src/shared/network.h
+src/shared/networkmessage.cpp
+src/shared/networkmessage.h
+src/shared/settings.h
+src/shared/util.cpp
+src/shared/util.h
\ No newline at end of file
diff --git a/pvs2.includes b/pvs2.includes
new file mode 100644
index 0000000..1b64a2e
--- /dev/null
+++ b/pvs2.includes
@@ -0,0 +1,16 @@
+build
+src/client/connectwindow
+src/client/net
+src/client/toolbar
+src/client/util
+src/client/util/platform
+src/client/vnc
+src/server/clicklabel
+src/server/connectionframe
+src/server/helpwindow
+src/server/mainwindow
+src/server/net
+src/server/reloadroomwindow
+src/server/sessionnamewindow
+src/server/util
+src/shared
\ No newline at end of file
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp
index 7c9d210..17e821a 100644
--- a/src/server/mainwindow/mainwindow.cpp
+++ b/src/server/mainwindow/mainwindow.cpp
@@ -24,6 +24,8 @@
#include "../sessionnamewindow/sessionnamewindow.h"
#include "../connectionframe/connectionframe.h"
#include "../helpwindow/helpwindow.h"
+#include "../reloadroomwindow/reloadroomwindow.h"
+#include "ui_reloadroom.h"
// Network
#include "../net/listenserver.h"
#include "../net/client.h"
@@ -61,6 +63,8 @@ MainWindow::MainWindow(QString ipListUrl, QWidget* parent) :
_sessionNameWindow = new SessionNameWindow(this);
_helpWindow = new HelpWindow(this);
_helpWindow->setWindowTitle("Help");
+ _reloadWindow = new ReloadRoomWindow(this);
+ _reloadWindow->setWindowTitle("Reload Room");
ui->setupUi(this);
Global::setSessionName();
@@ -312,16 +316,23 @@ void MainWindow::tryToUseRoomTemplate()
for (auto i : rooms)
{
- if (!_rooms.contains(i)) {
- QList> posIpConfig;
- _rooms.insert(i, posIpConfig);
- }
+ qDebug() << "i: " << i;
conf.beginGroup(i);
if (!conf.contains("mgrIP")) {
qDebug() << "Invalid config file!";
return;
}
- // Find the room that list the ip of this host as mgr
+
+ // First store all room configurations in _rooms.
+ int size = conf.beginReadArray("client");
+ for (int j = 0; j < size; j++) {
+ conf.setArrayIndex(j);
+ // qDebug() << "ip: " << conf.value("ip").toString() << " pos: " << conf.value("pos").toPoint();
+ _rooms[i].append(qMakePair(conf.value("ip").toString(), conf.value("pos").toPoint()));
+ }
+ conf.endArray();
+
+ // Find the managerIP of current room.
QString mgrIP = conf.value("mgrIP").toString();
foreach (const QHostAddress &address, QNetworkInterface::allAddresses())
{
@@ -343,7 +354,6 @@ void MainWindow::tryToUseRoomTemplate()
// Position is given in grid coordinates, createFrame take pixels
QString computerId = conf.value("ip").toString();
QPoint coord = conf.value("pos").toPoint();
- _rooms[i].append(qMakePair(computerId, coord));
qDebug() << computerId;
qDebug() << coord;
qDebug() << _tileWidth ;
@@ -685,9 +695,69 @@ 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()));
+ qDebug() << "in onButtonReloadRoomConfig!" << "size of room: " << _rooms.size();
+ QList keyList = _rooms.keys();
+ for (QList::iterator it = keyList.begin(); it != keyList.end() ; it++) {
+ _reloadWindow->ui->roomList->addItem(*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();
+ _reloadWindow->hide();
+}
+
+void MainWindow::onReloadRoomOk()
+{
+ int ret = QMessageBox::QMessageBox::question(this, "Warning", tr("Are you sure you want to reload the room?\n"
+ "Note that all clients will be deleted."), 0, 1, 2);
+
+ if (ret == 1) {
+ disconnect(_reloadWindow->ui->buttonBox, SIGNAL(accepted()), this, SLOT(onReloadRoomOk()));
+ disconnect(_reloadWindow->ui->buttonBox, SIGNAL(rejected()), this, SLOT(onReloadRoomCancel()));
+ // Delete all clients.
+ for (QList::iterator it = _clientFrames.begin(); it != _clientFrames.end(); it++)
+ {
+ (*it)->hide();
+ (*it)->deleteLater();
+ }
+ _clientFrames.clear();
+
+ // Load new room configuration.
+ QString roomToReload = _reloadWindow->ui->roomList->currentItem()->data(0).toString();
+ // qDebug() << roomToReload;
+
+ _reloadWindow->ui->roomList->clear();
+ _reloadWindow->hide();
+
+ QList> room = _rooms[roomToReload];
+ // qDebug() << " Room: " << room;
+ // qDebug() << "_rooms: " << _rooms;
+ for (QList>::iterator it = room.begin(); it != room.end(); ++it)
+ {
+ QString computerId = (*it).first;
+ QPoint pos = (*it).second;
+
+ qDebug() << "ComputerID: " << computerId;
+ qDebug() << "Pos: " << pos;
+
+ // Transform to pixels for createFrame(computerId, position).
+ pos.setX(pos.x() * _tileWidth);
+ pos.setY(pos.y() * _tileHeight);
+
+ ConnectionFrame *cf = createFrame(computerId, pos);
+ cf->move(cf->getCurrentPosition());
+ onPlaceFrame(false, cf);
+ }
+ }
+}
+
/***************************************************************************//**
* Display popup which explains possible actions about the buttons.
*/
diff --git a/src/server/mainwindow/mainwindow.h b/src/server/mainwindow/mainwindow.h
index 5349903..f8d0164 100644
--- a/src/server/mainwindow/mainwindow.h
+++ b/src/server/mainwindow/mainwindow.h
@@ -11,7 +11,7 @@ class ConnectionFrame;
class ListenServer;
class DiscoveryListener;
class HelpWindow;
-class ReloadWindow;
+class ReloadRoomWindow;
namespace Ui{
class MainWindow;
@@ -36,7 +36,7 @@ private:
Ui::MainWindow *ui;
SessionNameWindow *_sessionNameWindow;
HelpWindow *_helpWindow;
- ReloadWindow *_reloadWindow;
+ ReloadRoomWindow *_reloadWindow;
QLabel *_sessionNameLabel;
int _tbIconSize;
Qt::ToolBarArea _tbArea;
@@ -110,6 +110,8 @@ protected slots:
void onButtonSetAsTutor();
void onButtonReloadRoomConfig();
+ void onReloadRoomOk();
+ void onReloadRoomCancel();
void onButtonExit();
void onButtonHelp();
diff --git a/src/server/reloadroomwindow/reloadroomwindow.cpp b/src/server/reloadroomwindow/reloadroomwindow.cpp
index 77219a7..3070148 100644
--- a/src/server/reloadroomwindow/reloadroomwindow.cpp
+++ b/src/server/reloadroomwindow/reloadroomwindow.cpp
@@ -5,25 +5,9 @@ ReloadRoomWindow::ReloadRoomWindow(QWidget *parent) :
QDialog(parent), ui(new Ui::ReloadRoom)
{
ui->setupUi(this);
- connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onButtonOk()));
- connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onButtonCancel()));
}
ReloadRoomWindow::~ReloadRoomWindow()
{
delete ui;
}
-
-/*
- * Slots
- */
-
-void ReloadRoomWindow::onButtonOk()
-{
-
-}
-
-void ReloadRoomWindow::onButtonCancel()
-{
- this->hide();
-}
diff --git a/src/server/reloadroomwindow/reloadroomwindow.h b/src/server/reloadroomwindow/reloadroomwindow.h
index e918736..9ce0aba 100644
--- a/src/server/reloadroomwindow/reloadroomwindow.h
+++ b/src/server/reloadroomwindow/reloadroomwindow.h
@@ -14,16 +14,12 @@ class ReloadRoomWindow : public QDialog
public:
explicit ReloadRoomWindow(QWidget *parent = 0);
~ReloadRoomWindow();
+ Ui::ReloadRoom *ui;
// void show();
private:
- Ui::ReloadRoom *ui;
-
-
-private slots:
- void onButtonCancel();
- void onButtonOk();
};
+
#endif
--
cgit v1.2.3-55-g7522