diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-16 14:56:31 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-18 11:46:11 +0200 |
commit | 43a615e309e70978711f5c2c56a9881876b96349 (patch) | |
tree | a8d0899cbc1e7775f52056fc56db58b2fcf305de /src/quick/items | |
parent | 6034d89bdd907d4795c19e8ac752f4eb51c82a94 (diff) | |
parent | 3513995d8fde7f002977275463fcea1b86f4a693 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/qml/qqmlcustomparser.cpp
src/qml/qml/qqmlimport.cpp
src/qml/qml/qqmlimport_p.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypenamecache.cpp
src/qml/qml/qqmltypenamecache_p.h
src/qml/qml/qqmltypewrapper.cpp
src/qml/qml/qqmltypewrapper_p.h
src/qml/qml/qqmlvmemetaobject.cpp
src/qml/util/qqmladaptormodel.cpp
Change-Id: Ic959d03e6f9c328fb02710d9abbb0f27cddde131
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickitemview_p_p.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 12 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 5 |
4 files changed, 19 insertions, 1 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index 084b1f197a..1d0d042839 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -1921,7 +1921,7 @@ void QQuickItemViewPrivate::layout() markExtentsDirty(); updateHighlight(); - if (!q->isMoving() && !q->isFlicking()) { + if (!q->isMoving() && !q->isFlicking() && !movingFromHighlight()) { fixupPosition(); refill(); } diff --git a/src/quick/items/qquickitemview_p_p.h b/src/quick/items/qquickitemview_p_p.h index b6353246e8..2c04022cde 100644 --- a/src/quick/items/qquickitemview_p_p.h +++ b/src/quick/items/qquickitemview_p_p.h @@ -363,6 +363,7 @@ protected: virtual void createHighlight() = 0; virtual void updateHighlight() = 0; virtual void resetHighlightPosition() = 0; + virtual bool movingFromHighlight() { return false; } virtual void setPosition(qreal pos) = 0; virtual void fixupPosition() = 0; 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); diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 318a2fd9a3..06ad0a9dbf 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -3558,18 +3558,23 @@ bool QQuickTextInputPrivate::finishChange(int validateFromState, bool update, bo #endif if (m_maskData) { + m_validInput = true; if (m_text.length() != m_maxLength) { + m_validInput = false; m_acceptableInput = false; } else { for (int i = 0; i < m_maxLength; ++i) { if (m_maskData[i].separator) { if (m_text.at(i) != m_maskData[i].maskChar) { + m_validInput = false; m_acceptableInput = false; break; } } else { if (!isValidInput(m_text.at(i), m_maskData[i].maskChar)) { m_acceptableInput = false; + if (m_text.at(i) != m_blank) + m_validInput = false; break; } } |