diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-18 12:35:54 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2017-08-18 12:35:54 +0000 |
commit | ad63e8491bdf6e85af1a72a44ef643321e6ceec0 (patch) | |
tree | ba1993922c1d600ee571fb0e1bcd12d83d4c0f93 /src/quick | |
parent | 18ac01a7721f66902d61d6a2aad31377b1fdbeb8 (diff) | |
parent | 43a615e309e70978711f5c2c56a9881876b96349 (diff) |
Merge "Merge remote-tracking branch 'origin/5.9' into dev" into refs/staging/dev
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/designer/qqmldesignermetaobject.cpp | 2 | ||||
-rw-r--r-- | src/quick/designer/qquickdesignersupportitems.cpp | 41 | ||||
-rw-r--r-- | src/quick/designer/qquickdesignersupportmetainfo.cpp | 4 | ||||
-rw-r--r-- | src/quick/doc/src/qtquick.qdoc | 8 | ||||
-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 |
8 files changed, 48 insertions, 27 deletions
diff --git a/src/quick/designer/qqmldesignermetaobject.cpp b/src/quick/designer/qqmldesignermetaobject.cpp index 5e897218c5..33ea442b76 100644 --- a/src/quick/designer/qqmldesignermetaobject.cpp +++ b/src/quick/designer/qqmldesignermetaobject.cpp @@ -127,7 +127,7 @@ void QQmlDesignerMetaObject::init(QObject *object, QQmlEngine *engine) } QQmlDesignerMetaObject::QQmlDesignerMetaObject(QObject *object, QQmlEngine *engine) - : QQmlVMEMetaObject(object, cacheForObject(object, engine), /*qml compilation unit*/nullptr, /*qmlObjectId*/-1), + : QQmlVMEMetaObject(QQmlEnginePrivate::getV4Engine(engine), object, cacheForObject(object, engine), /*qml compilation unit*/nullptr, /*qmlObjectId*/-1), m_context(engine->contextForObject(object)), m_data(new MetaPropertyData) { diff --git a/src/quick/designer/qquickdesignersupportitems.cpp b/src/quick/designer/qquickdesignersupportitems.cpp index 874faed0af..38ba46e702 100644 --- a/src/quick/designer/qquickdesignersupportitems.cpp +++ b/src/quick/designer/qquickdesignersupportitems.cpp @@ -175,29 +175,24 @@ static bool isWindow(QObject *object) { return false; } -static QQmlType *getQmlType(const QString &typeName, int majorNumber, int minorNumber) +static bool isCrashingType(const QQmlType &type) { - return QQmlMetaType::qmlType(typeName, majorNumber, minorNumber); -} + QString name = type.qmlTypeName(); -static bool isCrashingType(QQmlType *type) -{ - if (type) { - if (type->qmlTypeName() == QLatin1String("QtMultimedia/MediaPlayer")) - return true; + if (type.qmlTypeName() == QLatin1String("QtMultimedia/MediaPlayer")) + return true; - if (type->qmlTypeName() == QLatin1String("QtMultimedia/Audio")) - return true; + if (type.qmlTypeName() == QLatin1String("QtMultimedia/Audio")) + return true; - if (type->qmlTypeName() == QLatin1String("QtQuick.Controls/MenuItem")) - return true; + if (type.qmlTypeName() == QLatin1String("QtQuick.Controls/MenuItem")) + return true; - if (type->qmlTypeName() == QLatin1String("QtQuick.Controls/Menu")) - return true; + if (type.qmlTypeName() == QLatin1String("QtQuick.Controls/Menu")) + return true; - if (type->qmlTypeName() == QLatin1String("QtQuick/Timer")) - return true; - } + if (type.qmlTypeName() == QLatin1String("QtQuick/Timer")) + return true; return false; } @@ -209,19 +204,19 @@ QObject *QQuickDesignerSupportItems::createPrimitive(const QString &typeName, in Q_UNUSED(disableComponentComplete) QObject *object = 0; - QQmlType *type = getQmlType(typeName, majorNumber, minorNumber); + QQmlType type = QQmlMetaType::qmlType(typeName, majorNumber, minorNumber); if (isCrashingType(type)) { object = new QObject; - } else if (type) { - if ( type->isComposite()) { - object = createComponent(type->sourceUrl(), context); + } else if (type.isValid()) { + if ( type.isComposite()) { + object = createComponent(type.sourceUrl(), context); } else { - if (type->typeName() == "QQmlComponent") { + if (type.typeName() == "QQmlComponent") { object = new QQmlComponent(context->engine(), 0); } else { - object = type->create(); + object = type.create(); } } diff --git a/src/quick/designer/qquickdesignersupportmetainfo.cpp b/src/quick/designer/qquickdesignersupportmetainfo.cpp index 332ae26bd4..b398bae55d 100644 --- a/src/quick/designer/qquickdesignersupportmetainfo.cpp +++ b/src/quick/designer/qquickdesignersupportmetainfo.cpp @@ -53,8 +53,8 @@ bool QQuickDesignerSupportMetaInfo::isSubclassOf(QObject *object, const QByteArr const QMetaObject *metaObject = object->metaObject(); while (metaObject) { - QQmlType *qmlType = QQmlMetaType::qmlType(metaObject); - if (qmlType && qmlType->qmlTypeName() == QLatin1String(superTypeName)) // ignore version numbers + QQmlType qmlType = QQmlMetaType::qmlType(metaObject); + if (qmlType.qmlTypeName() == QLatin1String(superTypeName)) // ignore version numbers return true; if (metaObject->className() == superTypeName) diff --git a/src/quick/doc/src/qtquick.qdoc b/src/quick/doc/src/qtquick.qdoc index 4bdd02241d..ede1eb19ac 100644 --- a/src/quick/doc/src/qtquick.qdoc +++ b/src/quick/doc/src/qtquick.qdoc @@ -86,6 +86,14 @@ To find out more about using the QML language, see the \l{Qt QML} module documen \endlist \endlist +\section1 Licenses and Attributions + +Qt Quick is available under commercial licenses from \l{The Qt Company}. +In addition, it is available under the +\l{GNU Lesser General Public License, version 3}, or +the \l{GNU General Public License, version 2}. +See \l{Qt Licensing} for further details. + \section1 Reference Documentation Additional Qt Quick information: 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; } } |