diff options
author | Charles Yin <charles.yin@nokia.com> | 2012-05-03 11:36:36 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-23 05:28:54 +0200 |
commit | efa9de71119853f89b4b175e7d537fbcc31a4848 (patch) | |
tree | 97ddef30cddfb41e708dea90e92bb1f247bc73be /tests/auto/quick/qquickview | |
parent | 8189f48ab2006c8cdd6e0f2683bed7b6a66a33fc (diff) |
Introduce a new constructor to QQuickView
Make it possible let QQuickView use an existing qml engine
and multiple QQuickView objects can share one QQmlEngine instance.
Change-Id: I035d1c15155be22f1131b504c40cf4ffb5da0f45
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickview')
-rw-r--r-- | tests/auto/quick/qquickview/tst_qquickview.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickview/tst_qquickview.cpp b/tests/auto/quick/qquickview/tst_qquickview.cpp index e5e8a83424..cb2f5c60f3 100644 --- a/tests/auto/quick/qquickview/tst_qquickview.cpp +++ b/tests/auto/quick/qquickview/tst_qquickview.cpp @@ -47,6 +47,7 @@ #include "../../shared/util.h" #include <QtGui/QWindow> #include <QtCore/QDebug> +#include <QtQml/qqmlengine.h> class tst_QQuickView : public QQmlDataTest { @@ -57,6 +58,7 @@ public: private slots: void resizemodeitem(); void errors(); + void engine(); }; @@ -201,6 +203,42 @@ void tst_QQuickView::errors() delete canvas; } +void tst_QQuickView::engine() +{ + QQmlEngine *engine = new QQmlEngine; + QVERIFY(!engine->incubationController()); + + QQuickView *canvas = new QQuickView(engine, 0); + QVERIFY(canvas); + QVERIFY(engine->incubationController() == canvas->incubationController()); + + QQuickView *canvas2 = new QQuickView(engine, 0); + QVERIFY(canvas); + QVERIFY(engine->incubationController() == canvas->incubationController()); + delete canvas; + QVERIFY(!engine->incubationController()); + + engine->setIncubationController(canvas2->incubationController()); + QVERIFY(engine->incubationController() == canvas2->incubationController()); + delete canvas2; + QVERIFY(!engine->incubationController()); + + QQuickView *canvas3 = new QQuickView; + QQuickView *canvas4 = new QQuickView(canvas3->engine(), 0); + + QVERIFY(canvas3->engine()); + QVERIFY(canvas4->engine()); + QCOMPARE(canvas3->engine(), canvas4->engine()); + delete canvas3; + QVERIFY(!canvas4->engine()); + QTest::ignoreMessage(QtWarningMsg, "QQuickView: invalid qml engine. "); + canvas4->setSource(QUrl()); + + QCOMPARE(canvas4->status(), QQuickView::Error); + QVERIFY(!canvas4->errors().isEmpty()); + QCOMPARE(canvas4->errors().back().description(), QLatin1String("QQuickView: invalid qml engine.")); + delete canvas4; +} QTEST_MAIN(tst_QQuickView) |