summaryrefslogtreecommitdiffstats
path: root/src/server/serverapp/serverapp.cpp
diff options
context:
space:
mode:
authorChristian Klinger2016-09-30 12:02:38 +0200
committerChristian Klinger2016-09-30 12:02:38 +0200
commit877607b07f30cbb8d7d8d06b1b91383095fdc144 (patch)
tree4c2ca41db4b9caa8e6c370237771d58bd99d7f13 /src/server/serverapp/serverapp.cpp
parentadded a pre-commit hook for astyle. (diff)
downloadpvs2-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.cpp91
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;
+}
+