diff options
Diffstat (limited to 'src/client/clientapp/clientapp.cpp')
-rw-r--r-- | src/client/clientapp/clientapp.cpp | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/src/client/clientapp/clientapp.cpp b/src/client/clientapp/clientapp.cpp index e8f4f95..3b90dee 100644 --- a/src/client/clientapp/clientapp.cpp +++ b/src/client/clientapp/clientapp.cpp @@ -1,7 +1,8 @@ #include "clientapp.h" +#include <QNetworkInterface> ClientApp::ClientApp(int& argc, char** argv) - : QApplication(argc, argv), _connectionMode(ConnectionMode::None), _examMode(false) + : QApplication(argc, argv), _connectionMode(ConnectionMode::None), _examMode(false), _isManagerPc(false) { /* some values */ setOrganizationName("openslx"); @@ -14,12 +15,16 @@ ClientApp::ClientApp(int& argc, char** argv) /* parse parameters and keep the unparsed ones */ _arguments = parseParameters(); - /* set translator */ - /* use system locale as language to translate gui */ - QTranslator translator; - translator.load(":pvsclient"); - installTranslator(&translator); + // System strings + QTranslator *qtTranslator = new QTranslator(this); + qtTranslator->load("qt_" + QLocale::system().name(), + QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + installTranslator(qtTranslator); + // App specific + QTranslator *translator = new QTranslator(this); + translator->load(":pvsclient"); + installTranslator(translator); /* TODO: Move the connection handling to ClientApp */ if (_connectionMode == ConnectionMode::Auto) { @@ -31,7 +36,9 @@ ClientApp::ClientApp(int& argc, char** argv) } _toolbar->setVisible(!_examMode); -}; + readIsManagerPc(); + +} /* parse arguments and return a list with the unused arguments */ QStringList ClientApp::parseParameters() @@ -73,3 +80,26 @@ QSharedPointer<QSettings> ClientApp::getSettings() return set; } +/* returns true when the pc of this client is also eligible to be a manager */ +void ClientApp::readIsManagerPc() +{ + QList<Room> myRooms; + auto conf = clientApp->getSettings(); + QStringList roomNames = conf->value("rooms").toStringList(); + + /* go through all rooms and check if this client is a manager of the room. */ + for (auto roomName : roomNames) { + conf->beginGroup(roomName); + QString mgrIP = conf->value("mgrIP").toString(); + + foreach (const QHostAddress & address, QNetworkInterface::allAddresses()) { + QString ip = conf->value("ip").toString(); + if (address.toString() == mgrIP) { + _isManagerPc = true; + return; + } + } + conf->endGroup(); + } +} + |