aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicklistview.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-06-29 10:11:24 +0200
committerLiang Qi <liang.qi@qt.io>2016-06-29 10:11:25 +0200
commit5f2249f4dcce7523d8dc88b425b43834c4c3cab9 (patch)
tree5ddbd03806a0f940cca2d4de966c2a00d761717b /src/quick/items/qquicklistview.cpp
parentd5cb1bf4a9e19a0a4471ba5c935f441463a73414 (diff)
parent1b897195a14b63a553b139983736d8dfdd419ffd (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Diffstat (limited to 'src/quick/items/qquicklistview.cpp')
-rw-r--r--src/quick/items/qquicklistview.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp
index 074af7ebdc..4b9b7df98a 100644
--- a/src/quick/items/qquicklistview.cpp
+++ b/src/quick/items/qquicklistview.cpp
@@ -3147,7 +3147,7 @@ bool QQuickListViewPrivate::applyInsertionChange(const QQmlChangeSet::Change &ch
}
}
- int prevVisibleCount = visibleItems.count();
+ bool visibleAffected = false;
if (insertResult->visiblePos.isValid() && pos < insertResult->visiblePos) {
// Insert items before the visible item.
int insertionIdx = index;
@@ -3170,6 +3170,7 @@ bool QQuickListViewPrivate::applyInsertionChange(const QQmlChangeSet::Change &ch
if (!item)
return false;
+ visibleAffected = true;
visibleItems.insert(insertionIdx, item);
if (insertionIdx == 0)
insertResult->changedFirstItem = true;
@@ -3201,6 +3202,9 @@ bool QQuickListViewPrivate::applyInsertionChange(const QQmlChangeSet::Change &ch
} else {
qreal to = buffer + displayMarginEnd + tempPos + size();
+
+ visibleAffected = count > 0 && pos < to;
+
for (int i = 0; i < count && pos <= to; ++i) {
FxViewItem *item = 0;
if (change.isMove() && (item = currentChanges.removedItems.take(change.moveKey(modelIndex + i))))
@@ -3251,7 +3255,7 @@ bool QQuickListViewPrivate::applyInsertionChange(const QQmlChangeSet::Change &ch
updateVisibleIndex();
- return visibleItems.count() > prevVisibleCount;
+ return visibleAffected;
}
void QQuickListViewPrivate::translateAndTransitionItemsAfter(int afterModelIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult)