summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKari Oikarinen <kari.oikarinen@qt.io>2018-11-01 10:13:17 +0200
committerKari Oikarinen <kari.oikarinen@qt.io>2019-02-04 11:43:45 +0000
commitde673f9aef239c93bb7935efd550c9380ecbfbaa (patch)
tree3898f474a769553ec64cc709ebefcd31e1507dc2
parentb5b749b7b8f4bcbd4547f0721e4f36e04f5337e6 (diff)
Treat unknown command line arguments as an error
Also no need to go through the name of the program at index 0. If it had been one of the valid command line arguments, the arguments would have been parsed wrong. Task-number: QTBUG-70548 Change-Id: Iccfb4c69fc3790d87f51f8fc1cf81620cc42ec3e Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
-rw-r--r--src/applicationsettings.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/applicationsettings.cpp b/src/applicationsettings.cpp
index 3b97851..14e286b 100644
--- a/src/applicationsettings.cpp
+++ b/src/applicationsettings.cpp
@@ -27,7 +27,9 @@
**
****************************************************************************/
#include "applicationsettings.h"
+
#include <QtCore/QCoreApplication>
+#include <QtCore/QDebug>
#include <QtCore/QStringList>
ApplicationSettings::ApplicationSettings(QObject *parent)
@@ -50,19 +52,23 @@ bool ApplicationSettings::isShowFPSEnabled() const
bool ApplicationSettings::parseCommandLineArguments()
{
- QStringList args = QCoreApplication::arguments();
- for (int i=0; i<args.size(); ++i) {
- if (args.at(i) == QStringLiteral("--main-file")) {
+ const QStringList args = QCoreApplication::arguments();
+ for (int i = 1; i < args.size(); ++i) {
+ const QString arg = args.at(i);
+ if (arg == QStringLiteral("--main-file")) {
++i;
m_mainFile = QUrl::fromUserInput(args.at(i));
- } else if (args.at(i) == QStringLiteral("--applications-root")) {
+ } else if (arg == QStringLiteral("--applications-root")) {
++i;
m_appsRoot = args.at(i);
- } else if (args.at(i) == QStringLiteral("--show-fps")) {
+ } else if (arg == QStringLiteral("--show-fps")) {
m_isShowFPSEnabled = true;
- } else if (args.at(i) == QStringLiteral("-h")
- || args.at(i) == QStringLiteral("--help")
- || args.at(i) == QStringLiteral("-?")) {
+ } else if (arg == QStringLiteral("-h")
+ || arg == QStringLiteral("--help")
+ || arg == QStringLiteral("-?")) {
+ return false;
+ } else {
+ qCritical() << "Unknown command line argument:" << args.at(i);
return false;
}
}