diff options
Diffstat (limited to 'src/quick/items/qquickitemview.cpp')
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index 17a1d124ab..21aca04fdc 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -1750,6 +1750,7 @@ void QQuickItemViewPrivate::updateCurrent(int modelIndex) void QQuickItemViewPrivate::clear() { + Q_Q(QQuickItemView); currentChanges.reset(); bufferedChanges.reset(); timeline.clear(); @@ -1763,8 +1764,11 @@ void QQuickItemViewPrivate::clear() } releasePendingTransition.clear(); + auto oldCurrentItem = currentItem; releaseItem(currentItem); currentItem = 0; + if (oldCurrentItem) + emit q->currentItemChanged(); createHighlight(); trackedItem = 0; @@ -2120,8 +2124,11 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult if (currentChanges.currentRemoved && currentItem) { if (currentItem->item && currentItem->attached) currentItem->attached->setIsCurrentItem(false); + auto oldCurrentItem = currentItem; releaseItem(currentItem); currentItem = 0; + if (oldCurrentItem) + emit q->currentItemChanged(); } if (!currentIndexCleared) updateCurrent(currentChanges.newCurrentIndex); |