diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-07-04 15:43:55 +0200 |
---|---|---|
committer | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-07-29 17:41:18 +0200 |
commit | 4c5445ddb0e7388247783c868925c086bdd666f7 (patch) | |
tree | b5ad9edf5c8fe096eff837aca305d83eb0b28f1c /tests/auto/quick/qquickitem/tst_qquickitem.cpp | |
parent | 6457541ddc1193045fbd2259df2374396ef41a22 (diff) |
Introducing QQuickItem::sceneGraphInvalidated/sceneGraphInitialized
[ChangeLog][QtQuick][QQuickItem] Added signals sceneGraphInitialized and sceneGraphInvalidated
Change-Id: Idaea88bc743f0637d093cf1ba7ac4f78acd7e6ad
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'tests/auto/quick/qquickitem/tst_qquickitem.cpp')
-rw-r--r-- | tests/auto/quick/qquickitem/tst_qquickitem.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickitem/tst_qquickitem.cpp b/tests/auto/quick/qquickitem/tst_qquickitem.cpp index 40327b0666..5993008c4a 100644 --- a/tests/auto/quick/qquickitem/tst_qquickitem.cpp +++ b/tests/auto/quick/qquickitem/tst_qquickitem.cpp @@ -52,6 +52,7 @@ #include <QQmlEngine> #include "../../shared/util.h" #include "../shared/viewtestutil.h" +#include <QSignalSpy> class TestItem : public QQuickItem { @@ -172,6 +173,8 @@ private slots: void visualParentOwnership(); void visualParentOwnershipWindow(); + void testSGInitializeAndInvalidate(); + private: enum PaintOrderOp { @@ -1883,6 +1886,37 @@ void tst_qquickitem::visualParentOwnershipWindow() } } +void tst_qquickitem::testSGInitializeAndInvalidate() +{ + for (int i=0; i<2; ++i) { + QScopedPointer<QQuickView> view(new QQuickView()); + + QQuickItem *item = new QQuickItem(); + + int expected; + if (i == 0) { + // First iteration, item has contents and should get signals + expected = 1; + item->setFlag(QQuickItem::ItemHasContents, true); + } else { + // Second iteration, item does not have content and will not get signals + expected = 0; + } + + QSignalSpy initializeSpy(item, SIGNAL(sceneGraphInitialized())); + QSignalSpy invalidateSpy(item, SIGNAL(sceneGraphInvalidated())); + item->setParentItem(view->contentItem()); + view->show(); + + QVERIFY(QTest::qWaitForWindowExposed(view.data())); + QCOMPARE(initializeSpy.size(), expected); + + delete view.take(); + QCOMPARE(invalidateSpy.size(), expected); + } + +} + QTEST_MAIN(tst_qquickitem) #include "tst_qquickitem.moc" |