qmlscene: if top-level is a QQuickWindow, set incubation controller
authorShawn Rutledge <shawn.rutledge@digia.com>
Fri, 31 May 2013 13:33:45 +0000 (15:33 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 4 Jun 2013 08:52:15 +0000 (10:52 +0200)
The necessity for this is documented in the
QQuickWindow::incubationController() accessor.  Bug 31203 is about
writing a custom main() with a QQmlApplicationEngine, not about
qmlscene, but the same workaround is necessary for both.  Hopefully
soon we find a way to make it unnecessary, but for now it is.
This fix also doesn't take care of the QtObject { Window { } }
use case.

Task-number: QTBUG-31203
Change-Id: Ic9a5e4a23ac918593138dc9cab3de6cd36453eaf
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
tools/qmlscene/main.cpp

index d572487..8a48445 100644 (file)
@@ -483,7 +483,9 @@ int main(int argc, char ** argv)
             QObject *topLevel = component->create();
             QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
             QQuickView* qxView = 0;
-            if (!window) {
+            if (window) {
+                engine.setIncubationController(window->incubationController());
+            } else {
                 QQuickItem *contentItem = qobject_cast<QQuickItem *>(topLevel);
                 if (contentItem) {
                     qxView = new QQuickView(&engine, NULL);