diff options
author | Albert Astals Cid <albert.astals@canonical.com> | 2014-05-15 10:02:43 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-06-04 13:34:44 +0200 |
commit | 297ee9cc2cfbc9e797aee3ce660484f682bb4e61 (patch) | |
tree | ec48d05058d1ee2fed06122cc6d24dc6422d6f4b /tests/auto/quick/qquickgridview/tst_qquickgridview.cpp | |
parent | fea26bb2941c3f24c4a5f3ad5efc1b85e0123ff3 (diff) |
Make ItemViews displayMargin work correctly when set to negative values
We need to call forceLayoutPolish instead of refillOrLayout
so that the visibility is correctly updated. Also update one
line that sets visibility in GridView
Change-Id: I29fa67cdd5196a744fab9507b4104cb83ad4bf5e
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Diffstat (limited to 'tests/auto/quick/qquickgridview/tst_qquickgridview.cpp')
-rw-r--r-- | tests/auto/quick/qquickgridview/tst_qquickgridview.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp index 890174e2a8..863fb69b84 100644 --- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp @@ -210,6 +210,7 @@ private slots: void moved_topToBottom_RtL_BtT_data(); void displayMargin(); + void negativeDisplayMargin(); private: QList<int> toIntList(const QVariantList &list); @@ -6393,6 +6394,49 @@ void tst_QQuickGridView::displayMargin() delete window; } +void tst_QQuickGridView::negativeDisplayMargin() +{ + QQuickItem *item; + QQuickView *window = createView(); + window->setSource(testFileUrl("negativeDisplayMargin.qml")); + window->show(); + QVERIFY(QTest::qWaitForWindowExposed(window)); + + QQuickItem *listview = window->rootObject(); + QQuickGridView *gridview = findItem<QQuickGridView>(window->rootObject(), "grid"); + QVERIFY(gridview != 0); + + QTRY_COMPARE(gridview->property("createdItems").toInt(), 11); + QCOMPARE(gridview->property("destroyedItem").toInt(), 0); + + QQuickItem *content = gridview->contentItem(); + QVERIFY(content != 0); + + QVERIFY(item = findItem<QQuickItem>(content, "delegate", 0)); + QCOMPARE(delegateVisible(item), true); + + QVERIFY(item = findItem<QQuickItem>(content, "delegate", 7)); + QCOMPARE(delegateVisible(item), true); + + QVERIFY(item = findItem<QQuickItem>(content, "delegate", 8)); + QCOMPARE(delegateVisible(item), false); + + // Flick until contentY means that delegate8 should be visible + listview->setProperty("contentY", 500); + QVERIFY(item = findItem<QQuickItem>(content, "delegate", 8)); + QTRY_COMPARE(delegateVisible(item), true); + + listview->setProperty("contentY", 1000); + QTRY_VERIFY(item = findItem<QQuickItem>(content, "delegate", 14)); + QTRY_COMPARE(delegateVisible(item), true); + + listview->setProperty("contentY", 0); + QVERIFY(item = findItem<QQuickItem>(content, "delegate", 4)); + QTRY_COMPARE(delegateVisible(item), true); + + delete window; +} + QTEST_MAIN(tst_QQuickGridView) #include "tst_qquickgridview.moc" |