diff options
author | Liang Qi <liang.qi@qt.io> | 2018-02-18 13:37:02 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-02-18 13:37:02 +0100 |
commit | ba05397ad723fa19125eb5ca2f91c7f437b21484 (patch) | |
tree | e236df3317828f02ec1e8f28d87125bcc286b2d9 /src/quick/items | |
parent | b2c71d6518143b3d2a9bd3aef1d72ee5929891fc (diff) | |
parent | 0e64bd96fbf26855a65e38847083dbd2c6bee4ac (diff) |
Merge remote-tracking branch 'origin/5.9' into 5.11
Conflicts:
.qmake.conf
tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp
Change-Id: I7feb9772fc35066f56b7c073482b53ca8c86c70b
Diffstat (limited to 'src/quick/items')
-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); |