aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickvisualitemmodel.cpp
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-05-28 14:06:13 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-28 07:17:09 +0200
commit81726bcb8d2ea58f785f7d1f3bb3de8bb089d6ec (patch)
tree545b9c91d4973998e8045661b6d2807ab15a84dc /src/quick/items/qquickvisualitemmodel.cpp
parent2533a40cf26ded5b777aae6b3c49813a044ab735 (diff)
Fix flicker when changing ListView currentIndex with VisualItemModel.
Return the Referenced flag when the view has outstanding references otherwise it will attempt to hide an item if believes shouldn't be visible. Task-number: QTBUG-25849 Change-Id: I7387ab8322a1cd7f3386685086b2b8ad10c8b4f0 Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'src/quick/items/qquickvisualitemmodel.cpp')
-rw-r--r--src/quick/items/qquickvisualitemmodel.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/quick/items/qquickvisualitemmodel.cpp b/src/quick/items/qquickvisualitemmodel.cpp
index 1cefcb4ce9..1cb595ec4d 100644
--- a/src/quick/items/qquickvisualitemmodel.cpp
+++ b/src/quick/items/qquickvisualitemmodel.cpp
@@ -192,8 +192,10 @@ QQuickItem *QQuickVisualItemModel::item(int index, bool)
Q_D(QQuickVisualItemModel);
QQuickVisualItemModelPrivate::Item &item = d->children[index];
item.addRef();
- emit initItem(index, item.item);
- emit createdItem(index, item.item);
+ if (item.ref == 1) {
+ emit initItem(index, item.item);
+ emit createdItem(index, item.item);
+ }
return item.item;
}
@@ -205,6 +207,8 @@ QQuickVisualModel::ReleaseFlags QQuickVisualItemModel::release(QQuickItem *item)
if (d->children[idx].deref()) {
// XXX todo - the original did item->scene()->removeItem(). Why?
item->setParentItem(0);
+ } else {
+ return QQuickVisualModel::Referenced;
}
}
return 0;