aboutsummaryrefslogtreecommitdiffstats
path: root/examples/qml/networkaccessmanagerfactory/main.cpp
diff options
context:
space:
mode:
authorOliver Wolff <oliver.wolff@digia.com>2014-03-10 13:40:36 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-12 12:39:59 +0100
commitce56dbcdb420b62e085fed74df248fdecbdad871 (patch)
treec5199c3d317b58258a0e3552829aa22d2419940c /examples/qml/networkaccessmanagerfactory/main.cpp
parent4dd4d93664e32fd3bee0d02d825b4fd6cc60464d (diff)
networkaccessmanagerfactory example: introduced QCommandLineParser
Change-Id: I6385ee0c33a0a8cb411dbbdf5f6ea10f5ebde1a5 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'examples/qml/networkaccessmanagerfactory/main.cpp')
-rw-r--r--examples/qml/networkaccessmanagerfactory/main.cpp39
1 files changed, 28 insertions, 11 deletions
diff --git a/examples/qml/networkaccessmanagerfactory/main.cpp b/examples/qml/networkaccessmanagerfactory/main.cpp
index 2cd9fa0721..9fe8882243 100644
--- a/examples/qml/networkaccessmanagerfactory/main.cpp
+++ b/examples/qml/networkaccessmanagerfactory/main.cpp
@@ -38,6 +38,7 @@
**
****************************************************************************/
+#include <QCommandLineParser>
#include <QGuiApplication>
#include <QNetworkAccessManager>
#include <QNetworkProxy>
@@ -82,20 +83,36 @@ int main(int argc, char ** argv)
QGuiApplication app(argc, argv);
- for (int i = 1; i < argc; ++i) {
- QString arg(argv[i]);
- if (arg == "-host" && i < argc-1) {
- proxyHost = argv[++i];
- } else if (arg == "-port" && i < argc-1) {
- arg = argv[++i];
- proxyPort = arg.toInt();
- } else if (arg[0] != '-') {
- source = QUrl::fromLocalFile(arg);
- } else {
- qWarning() << "Usage: networkaccessmanagerfactory [-host <proxy> -port <port>] [file]";
+ QCommandLineParser parser;
+ QCommandLineOption proxyHostOption("host", "The proxy host to use.", "host");
+ parser.addOption(proxyHostOption);
+ QCommandLineOption proxyPortOption("port", "The proxy port to use.", "port", "0");
+ parser.addOption(proxyPortOption);
+ parser.addPositionalArgument("file", "The file to use.");
+ QCommandLineOption helpOption = parser.addHelpOption();
+ parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
+ QStringList arguments = QCoreApplication::arguments();
+ if (!parser.parse(arguments)) {
+ qWarning() << parser.helpText() << '\n' << parser.errorText();
+ exit(1);
+ }
+ if (parser.isSet(helpOption)) {
+ qWarning() << parser.helpText();
+ exit(0);
+ }
+ if (parser.isSet(proxyHostOption))
+ proxyHost = parser.value(proxyHostOption);
+ if (parser.isSet(proxyPortOption)) {
+ bool ok = true;
+ proxyPort = parser.value(proxyPortOption).toInt(&ok);
+ if (!ok || proxyPort < 1 || proxyPort > 65535) {
+ qWarning() << parser.helpText() << "\nNo valid port given. It should\
+ be a number between 1 and 65535";
exit(1);
}
}
+ if (parser.positionalArguments().count() == 1)
+ source = QUrl::fromLocalFile(parser.positionalArguments().first());
QQuickView view;
view.engine()->setNetworkAccessManagerFactory(new MyNetworkAccessManagerFactory);