#include "clientapp.h" ClientApp::ClientApp(int& argc, char** argv) : QApplication(argc, argv), _connectionMode(ConnectionMode::None), _examMode(false) { /* some values */ setOrganizationName("openslx"); setOrganizationDomain("openslx.org"); setApplicationName("pvsclient"); /* configuration */ QSettings::setPath(QSettings::IniFormat, QSettings::SystemScope, "/opt/"); /* parse parameters and keep the unparsed ones */ _arguments = parseParameters(); /* TODO: Move the connection handling to ClientApp */ if (_connectionMode == ConnectionMode::Auto) { _toolbar = new Toolbar(true); // auto connect client without session ID. } else if (_connectionMode == ConnectionMode::Session) { _toolbar = new Toolbar(_sessionName.toUtf8()); // connect client with given session ID. } else { _toolbar = new Toolbar(); // create normal client. } _toolbar->setVisible(!_examMode); /* set translator */ /* use system locale as language to translate gui */ QTranslator translator; translator.load(":pvsclient"); installTranslator(&translator); }; /* parse arguments and return a list with the unused arguments */ QStringList ClientApp::parseParameters() { QStringList rest; for (QString a : QApplication::arguments()) { if (a == "--exam-mode") { _examMode = true; } else if (a == "--auto") { _connectionMode = ConnectionMode::Auto; } else if (a.startsWith("--session=")) { _connectionMode = ConnectionMode::Session; _sessionName = a.replace("--session=", ""); } else { rest << a; } } return rest; } QStringList ClientApp::arguments() { return _arguments; }