aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2017-08-16 14:56:31 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2017-08-18 11:46:11 +0200
commit43a615e309e70978711f5c2c56a9881876b96349 (patch)
treea8d0899cbc1e7775f52056fc56db58b2fcf305de /src/quick
parent6034d89bdd907d4795c19e8ac752f4eb51c82a94 (diff)
parent3513995d8fde7f002977275463fcea1b86f4a693 (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')
-rw-r--r--src/quick/designer/qqmldesignermetaobject.cpp2
-rw-r--r--src/quick/designer/qquickdesignersupportitems.cpp41
-rw-r--r--src/quick/designer/qquickdesignersupportmetainfo.cpp4
-rw-r--r--src/quick/doc/src/qtquick.qdoc8
-rw-r--r--src/quick/items/qquickitemview.cpp2
-rw-r--r--src/quick/items/qquickitemview_p_p.h1
-rw-r--r--src/quick/items/qquicklistview.cpp12
-rw-r--r--src/quick/items/qquicktextinput.cpp5
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 &section)
{
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;
}
}