aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickitemview.cpp7
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);