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/qquicklistview/tst_qquicklistview.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/qquicklistview/tst_qquicklistview.cpp')
-rw-r--r-- | tests/auto/quick/qquicklistview/tst_qquicklistview.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index 5cc3c7e642..2093265163 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -218,6 +218,7 @@ private slots: void typedModel(); void displayMargin(); + void negativeDisplayMargin(); void highlightItemGeometryChanges(); @@ -7150,6 +7151,49 @@ void tst_QQuickListView::displayMargin() delete window; } +void tst_QQuickListView::negativeDisplayMargin() +{ + QQuickItem *item; + QQuickView *window = createView(); + window->setSource(testFileUrl("negativeDisplayMargin.qml")); + window->show(); + QVERIFY(QTest::qWaitForWindowExposed(window)); + + QQuickItem *listview = window->rootObject(); + QQuickListView *innerList = findItem<QQuickListView>(window->rootObject(), "innerList"); + QVERIFY(innerList != 0); + + QTRY_COMPARE(innerList->property("createdItems").toInt(), 11); + QCOMPARE(innerList->property("destroyedItem").toInt(), 0); + + QQuickItem *content = innerList->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); + QTRY_VERIFY(item = findItem<QQuickItem>(content, "delegate", 4)); + QTRY_COMPARE(delegateVisible(item), true); + + delete window; +} + void tst_QQuickListView::highlightItemGeometryChanges() { QScopedPointer<QQuickView> window(createView()); |