From 4c35ed7f24244c651afea6e7b9e577e2be84c905 Mon Sep 17 00:00:00 2001 From: Christian Klinger Date: Tue, 27 Sep 2016 16:22:06 +0200 Subject: improved option parsing. --- src/client/clientapp/clientapp.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/client/clientapp/clientapp.cpp') diff --git a/src/client/clientapp/clientapp.cpp b/src/client/clientapp/clientapp.cpp index ce0b5f3..05289e5 100644 --- a/src/client/clientapp/clientapp.cpp +++ b/src/client/clientapp/clientapp.cpp @@ -6,7 +6,7 @@ ClientApp::ClientApp(int& argc, char** argv) : QApplication(argc, argv), _connec setOrganizationDomain("openslx.org"); setApplicationName("pvsclient"); - parseParameters(); + _arguments = parseParameters(); initConfiguration(); @@ -28,9 +28,10 @@ ClientApp::ClientApp(int& argc, char** argv) : QApplication(argc, argv), _connec }; -/* parse arguments */ -void ClientApp::parseParameters() { - for (QString a : arguments()) { +/* 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") { @@ -38,8 +39,11 @@ void ClientApp::parseParameters() { } else if (a.startsWith("--session=")) { _connectionMode = ConnectionMode::Session; _sessionName = a.replace("--session=", ""); + } else { + rest << a; } } + return rest; } void ClientApp::initConfiguration() { /* configuration */ @@ -66,3 +70,7 @@ void ClientApp::initConfiguration() { } } while (false); } + +QStringList ClientApp::arguments() { + return _arguments; +} -- cgit v1.2.3-55-g7522