diff options
author | Michael Brasser <mbrasser@ford.com> | 2017-07-10 13:52:35 -0500 |
---|---|---|
committer | Michael Brasser <michael.brasser@live.com> | 2017-08-09 13:20:02 +0000 |
commit | d419377d2041b35639a5ab81688a0bc30b5e2994 (patch) | |
tree | 6bd462b08675da01147417331d1208545c11197a /src/quick/items/qquicklistview.cpp | |
parent | 9e1497bed6f68d76e1ba8639a5ee9ca7056ef503 (diff) |
Fix ListView::StrictlyEnforceRange with resizing delegate
When fixupPosition is called for a ListView with StrictlyEnforceRange,
the original reason for the move is lost, and the fixup is applied
immediately. There are already checks for whether the view is moving,
so expand these checks to include movement caused by highlight.
Change-Id: I25f771b9a529d31dc28acb9f91fcd2b582428200
Task-number: QTBUG-33568
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Diffstat (limited to 'src/quick/items/qquicklistview.cpp')
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 979a3557a1..edfa970035 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -101,6 +101,7 @@ public: void createHighlight() override; void updateHighlight() override; void resetHighlightPosition() override; + bool movingFromHighlight() override; void setPosition(qreal pos) override; void layoutVisibleItems(int fromModelIndex = 0) override; @@ -945,6 +946,17 @@ void QQuickListViewPrivate::resetHighlightPosition() static_cast<FxListItemSG*>(highlight)->setPosition(static_cast<FxListItemSG*>(currentItem)->itemPosition()); } +bool QQuickListViewPrivate::movingFromHighlight() +{ + if (!haveHighlightRange || highlightRange != QQuickListView::StrictlyEnforceRange) + return false; + + return (highlightPosAnimator && highlightPosAnimator->isRunning()) || + (highlightHeightAnimator && highlightHeightAnimator->isRunning()) || + (highlightWidthAnimator && highlightWidthAnimator->isRunning()); +} + + QQuickItem * QQuickListViewPrivate::getSectionItem(const QString §ion) { Q_Q(QQuickListView); |