diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-03-28 17:42:32 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-24 02:40:49 +0200 |
commit | afbde67c01baad017cf7ed385a6415e137269e9e (patch) | |
tree | b338b6115c8acc39f0a5e6b293b8792de22761c3 /tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp | |
parent | 959fd59bd5bb72dde5db4975443c69045ea2fe53 (diff) |
Don't construct VisualDataModel attached properties unless requested.
This saves allocating a QObject per item model in the common case.
Change-Id: I0e77e6c6c0c64ac6c5e482ef55e194c68e778b32
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp')
-rw-r--r-- | tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp index b8d46ac373..9047dcc021 100644 --- a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp +++ b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp @@ -229,6 +229,7 @@ private slots: void resolve(); void warnings_data(); void warnings(); + void invalidAttachment(); private: template <int N> void groups_verify( @@ -3439,6 +3440,31 @@ void tst_qquickvisualdatamodel::warnings() QCOMPARE(evaluate<int>(listView, "count"), count); } +void tst_qquickvisualdatamodel::invalidAttachment() +{ + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("invalidAttachment.qml")); + + QScopedPointer<QObject> object(component.create()); + QVERIFY(object); + QCOMPARE(component.errors().count(), 0); + + QVariant property = object->property("invalidVdm"); + QCOMPARE(property.userType(), qMetaTypeId<QQuickVisualDataModel *>()); + QVERIFY(!property.value<QQuickVisualDataModel *>()); + + QQuickItem *item = object->findChild<QQuickItem *>("delegate"); + QVERIFY(item); + + property = item->property("validVdm"); + QCOMPARE(property.userType(), qMetaTypeId<QQuickVisualDataModel *>()); + QVERIFY(property.value<QQuickVisualDataModel *>()); + + property = item->property("invalidVdm"); + QCOMPARE(property.userType(), qMetaTypeId<QQuickVisualDataModel *>()); + QVERIFY(!property.value<QQuickVisualDataModel *>()); +} + QTEST_MAIN(tst_qquickvisualdatamodel) |