diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-01-18 16:21:50 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-20 00:30:09 +0100 |
commit | d9fd9ff55d4d8717cb35b7af39f9f5f39f9a3448 (patch) | |
tree | ff2f7725482a36506c1b5a34a7a69ff79ec10c67 /tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp | |
parent | b1da5cb07922e786bd3223317651284b73159e82 (diff) |
Fix lockup in views due to endless polish loop.
It was possible to cause an endless polish loop in some rare cases.
Eliminate all calls to polish() within existing polish() code paths.
Cleanup delegate creation and cancelling in the cacheBuffer area.
Adjust first item position correctly when inserting/removing before
visibleItems list.
Change-Id: I508a2e6de8cb09d904466cbf5fb6b5dfd1e89c49
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp')
-rw-r--r-- | tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp index 1953cf7e73..bb168e4212 100644 --- a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp @@ -1961,8 +1961,8 @@ void tst_QQuickListView::spacing() QTRY_VERIFY(listview->spacing() == 10); // Confirm items positioned correctly - itemCount = findItems<QQuickItem>(contentItem, "wrapper").count(); - for (int i = 0; i < model.count() && i < itemCount; ++i) { + QTRY_VERIFY(findItems<QQuickItem>(contentItem, "wrapper").count() == 11); + for (int i = 0; i < 11; ++i) { QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QTRY_VERIFY(item); @@ -1972,8 +1972,8 @@ void tst_QQuickListView::spacing() listview->setSpacing(0); // Confirm items positioned correctly - itemCount = findItems<QQuickItem>(contentItem, "wrapper").count(); - for (int i = 0; i < model.count() && i < itemCount; ++i) { + QTRY_VERIFY(findItems<QQuickItem>(contentItem, "wrapper").count() >= 16); + for (int i = 0; i < 16; ++i) { QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", i); if (!item) qWarning() << "Item" << i << "not found"; QTRY_VERIFY(item); @@ -2264,7 +2264,7 @@ void tst_QQuickListView::sectionsPositioning() model.modifyItem(2, "Three", "aaa"); model.modifyItem(3, "Four", "aaa"); model.modifyItem(4, "Five", "aaa"); - QTest::qWait(300); + QTRY_COMPARE(QQuickItemPrivate::get(listview)->polishScheduled, false); QTRY_COMPARE(listview->currentSection(), QString("aaa")); @@ -2275,8 +2275,7 @@ void tst_QQuickListView::sectionsPositioning() QTRY_COMPARE(item->y(), qreal(i*20*6)); } - topItem = findVisibleChild(contentItem, "sect_aaa"); // section header - QVERIFY(topItem); + QTRY_VERIFY(topItem = findVisibleChild(contentItem, "sect_aaa")); // section header QCOMPARE(topItem->y(), 10.); // remove section boundary |