diff options
author | Christian Klinger | 2016-09-30 12:02:38 +0200 |
---|---|---|
committer | Christian Klinger | 2016-09-30 12:02:38 +0200 |
commit | 877607b07f30cbb8d7d8d06b1b91383095fdc144 (patch) | |
tree | 4c2ca41db4b9caa8e6c370237771d58bd99d7f13 /src/server/serverapp/serverapp.cpp | |
parent | added a pre-commit hook for astyle. (diff) | |
download | pvs2-877607b07f30cbb8d7d8d06b1b91383095fdc144.tar.gz pvs2-877607b07f30cbb8d7d8d06b1b91383095fdc144.tar.xz pvs2-877607b07f30cbb8d7d8d06b1b91383095fdc144.zip |
refactoring.
Diffstat (limited to 'src/server/serverapp/serverapp.cpp')
-rw-r--r-- | src/server/serverapp/serverapp.cpp | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/server/serverapp/serverapp.cpp b/src/server/serverapp/serverapp.cpp new file mode 100644 index 0000000..8ad896f --- /dev/null +++ b/src/server/serverapp/serverapp.cpp @@ -0,0 +1,91 @@ +#include <QTranslator> + + +#include "serverapp.h" + +ServerApp::ServerApp(int& argc, char** argv) + : QApplication(argc, argv) +{ + setOrganizationName("openslx"); + setOrganizationDomain("openslx.org"); + setApplicationName("pvsmgr"); + + _arguments = parseParameters(); + + /* use system locale as language to translate gui */ + QTranslator translator; + translator.load(":pvsmgr"); + installTranslator(&translator); + + /* Set the global path of the settings */ + QSettings::setPath(QSettings::IniFormat, QSettings::SystemScope, "/opt/"); + QSharedPointer<QSettings> sys = getSettings(); + qDebug() << "System settings are in:" << sys->fileName(); + QFileInfo sysfi(sys->fileName()); + + _mainWindow = new MainWindow(); + +} + +QStringList ServerApp::parseParameters() +{ + QStringList rest; + for (QString a : arguments()) { + if (a == "--manager-only") { + _manager_only = true; + break; + } else if (a.startsWith("--config=")) { + _iniPath = a.mid(9); + } else { + rest << a; + } + } + return rest; + +} + +QStringList ServerApp::arguments() +{ + return _arguments; +} + +const Room* ServerApp::getCurrentRoom() +{ + if (_rooms.contains(_currentRoom)) { + return _rooms[_currentRoom]; + } else { + static Room* defaultRoom = NULL; + if (defaultRoom == NULL) { + defaultRoom = new Room(QMap<QString, + QPoint>(), QSize(8, 6), QSize(1, 1), "", ""); + } + return defaultRoom; + } +} +void ServerApp::setSessionName(const QString& name) +{ + _sessionName = name; + _sessionNameArray = name.toUtf8(); +} + +void ServerApp::setSessionName() +{ + const QString name = QString::number(qrand() % 9000 + 1000); + _sessionName = name; + _sessionNameArray = name.toUtf8(); +} + +QSharedPointer<QSettings> ServerApp::getSettings() +{ + QSharedPointer<QSettings> set; + if (_iniPath == "") { + /* default location (system scope) */ + set = QSharedPointer<QSettings>(new QSettings(QSettings::IniFormat, QSettings::SystemScope, "openslx/pvs2", "pvs2")); + } else { + /* use _iniPath to find ini file */ + set = QSharedPointer<QSettings>(new QSettings(_iniPath, QSettings::IniFormat)); + } + set->setIniCodec("UTF-8"); + return set; +} + |