aboutsummaryrefslogtreecommitdiffstats
path: root/examples/qml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/qml')
-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);