aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-02-20 13:59:41 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-21 01:21:57 +0100
commitb01aec8e81a5839ee520ed4e6e4fedf1d2ec419a (patch)
tree9224d19f4d9b1ce5a95b37869cdddee68b6609fc
parent2954685be016123aac8100f398150a9f8cf01a92 (diff)
cacheBuffer makes delegates appear briefly in wrong position
Set delegates that are created asynchronously to non-visible. This would have happened the next time addVisibleItems() was called. Task-number: QTBUG-24364 Change-Id: I4b628bef186c8c41bd6a4d9e4ac402d59bcb4972 Reviewed-by: Bea Lam <bea.lam@nokia.com>
-rw-r--r--src/quick/items/qquickitemview.cpp2
-rw-r--r--tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 4d7c92ad1c..955375e287 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -2754,6 +2754,8 @@ void QQuickItemView::initItem(int index, QQuickItem *item)
Q_D(QQuickItemView);
item->setZ(1);
if (d->requestedIndex == index) {
+ if (d->requestedAsync)
+ item->setVisible(false);
item->setParentItem(contentItem());
QDeclarative_setParent_noEvent(item, contentItem());
d->requestedItem = d->newViewItem(index, item);
diff --git a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
index 393dd09d36..298b272629 100644
--- a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
+++ b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
@@ -2095,8 +2095,7 @@ void tst_QQuickListView::sectionsPositioning()
listview->setContentY(20);
QTRY_COMPARE(QQuickItemPrivate::get(listview)->polishScheduled, false);
canvas->rootObject()->setProperty("sectionPositioning", QVariant(int(QQuickViewSection::InlineLabels | QQuickViewSection::CurrentLabelAtStart)));
- item = findVisibleChild(contentItem, "sect_new"); // inline label restored
- QVERIFY(item);
+ QTRY_VERIFY(item = findVisibleChild(contentItem, "sect_new")); // inline label restored
QCOMPARE(item->y(), 340.);
// Turn sticky header off