diff options
Diffstat (limited to 'src/client/clientapp')
| -rw-r--r-- | src/client/clientapp/clientapp.cpp | 19 | ||||
| -rw-r--r-- | src/client/clientapp/clientapp.h | 3 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/client/clientapp/clientapp.cpp b/src/client/clientapp/clientapp.cpp index e1ef22c..5786e03 100644 --- a/src/client/clientapp/clientapp.cpp +++ b/src/client/clientapp/clientapp.cpp @@ -44,7 +44,9 @@ QStringList ClientApp::parseParameters() _connectionMode = ConnectionMode::Auto; } else if (a.startsWith("--session=")) { _connectionMode = ConnectionMode::Session; - _sessionName = a.replace("--session=", ""); + _sessionName = a.mid(10); + } else if (a.startsWith("--config=")) { + _iniPath = a.mid(9); } else { rest << a; } @@ -56,3 +58,18 @@ QStringList ClientApp::arguments() { return _arguments; } + +QSharedPointer<QSettings> ClientApp::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; +} + diff --git a/src/client/clientapp/clientapp.h b/src/client/clientapp/clientapp.h index e7e6e57..0569305 100644 --- a/src/client/clientapp/clientapp.h +++ b/src/client/clientapp/clientapp.h @@ -28,6 +28,7 @@ private: QString _sessionName; /* only set when _connectionMode == Session */ Toolbar* _toolbar; QStringList _arguments; + QString _iniPath; QStringList parseParameters(); @@ -38,4 +39,6 @@ public: bool isExamMode() const { return _examMode; }; virtual QStringList arguments(); + + QSharedPointer<QSettings> getSettings(); }; |
