Allow qmlscene to quit immediately after starting
authorMatthew Vogt <matthew.vogt@nokia.com>
Wed, 21 Mar 2012 02:49:15 +0000 (12:49 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 21 Mar 2012 07:04:33 +0000 (08:04 +0100)
Useful for running tests that have no interactive element, where all
computation is performed in the initialization phase of processing
the QML source.

Change-Id: Id3f87fc504a30eb4e351804a98fe265db8fe93c9
Reviewed-by: Martin Jones <martin.jones@nokia.com>

tools/qmlscene/main.cpp

index 327dfc6..32c9be7 100644 (file)
@@ -156,6 +156,7 @@ struct Options
         , clip(false)
         , versionDetection(true)
         , slowAnimations(false)
+        , quitImmediately(false)
     {
     }
 
@@ -168,6 +169,7 @@ struct Options
     bool clip;
     bool versionDetection;
     bool slowAnimations;
+    bool quitImmediately;
 };
 
 #if defined(QMLSCENE_BUNDLE)
@@ -347,6 +349,7 @@ static void usage()
     qWarning("  --no-multisample .......................... Disable multisampling (anti-aliasing)");
     qWarning("  --no-version-detection .................... Do not try to detect the version of the .qml file");
     qWarning("  --slow-animations ......................... Run all animations in slow motion");
+    qWarning("  --quit .................................... Quit immediately after starting");
 
     qWarning(" ");
     exit(1);
@@ -372,6 +375,8 @@ int main(int argc, char ** argv)
                 options.versionDetection = false;
             else if (lowerArgument == QLatin1String("--slow-animations"))
                 options.slowAnimations = true;
+            else if (lowerArgument == QLatin1String("--quit"))
+                options.quitImmediately = true;
             else if (lowerArgument == QLatin1String("-i") && i + 1 < argc)
                 imports.append(QString::fromLatin1(argv[++i]));
             else if (lowerArgument == QLatin1String("--help")
@@ -428,6 +433,10 @@ int main(int argc, char ** argv)
             else
                 window->show();
 
+            if (options.quitImmediately) {
+                QMetaObject::invokeMethod(QCoreApplication::instance(), "quit", Qt::QueuedConnection);
+            }
+
             exitCode = app.exec();
 
             delete window;