aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickitem/tst_qquickitem.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2014-07-04 15:43:55 +0200
committerGunnar Sletta <gunnar.sletta@jollamobile.com>2014-07-29 17:41:18 +0200
commit4c5445ddb0e7388247783c868925c086bdd666f7 (patch)
treeb5ad9edf5c8fe096eff837aca305d83eb0b28f1c /tests/auto/quick/qquickitem/tst_qquickitem.cpp
parent6457541ddc1193045fbd2259df2374396ef41a22 (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.cpp34
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"