diff options
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; +} + |