From ce56dbcdb420b62e085fed74df248fdecbdad871 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Mon, 10 Mar 2014 13:40:36 +0100 Subject: networkaccessmanagerfactory example: introduced QCommandLineParser Change-Id: I6385ee0c33a0a8cb411dbbdf5f6ea10f5ebde1a5 Reviewed-by: Andrew Knight Reviewed-by: Friedemann Kleint --- examples/qml/networkaccessmanagerfactory/main.cpp | 39 ++++++++++++++++------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'examples/qml') 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 #include #include #include @@ -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 -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); -- cgit v1.2.3