diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-10-04 17:48:29 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-10-05 12:07:24 +0000 |
commit | ae3e7f0799fcdd094e54d792e1a9b13c0e7730aa (patch) | |
tree | 17883a4bb4b164283d5678cb9024612548f6870d /src | |
parent | 19c3993abd691843194cce6c047773acc21c2523 (diff) |
Add QQuickTumbler::moving
[ChangeLog][Controls][Tumbler] Added a moving-property that describes
whether the tumbler is currently moving, due to the user either
dragging or flicking the tumbler.
Change-Id: Ic86d243cdbdfa8fcd7a7932264332c04a16e020a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/controls/Tumbler.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/material/Tumbler.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/qtquickcontrols2plugin.cpp | 4 | ||||
-rw-r--r-- | src/imports/controls/universal/Tumbler.qml | 4 | ||||
-rw-r--r-- | src/imports/templates/qtquicktemplates2plugin.cpp | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktumbler.cpp | 15 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktumbler_p.h | 4 |
7 files changed, 32 insertions, 6 deletions
diff --git a/src/imports/controls/Tumbler.qml b/src/imports/controls/Tumbler.qml index 4c1e5ecd..c7fe5e42 100644 --- a/src/imports/controls/Tumbler.qml +++ b/src/imports/controls/Tumbler.qml @@ -35,9 +35,9 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Controls 2.1 +import QtQuick.Controls 2.2 import QtQuick.Controls.impl 2.1 -import QtQuick.Templates 2.1 as T +import QtQuick.Templates 2.2 as T T.Tumbler { id: control diff --git a/src/imports/controls/material/Tumbler.qml b/src/imports/controls/material/Tumbler.qml index 255d4b5d..6fa66f1c 100644 --- a/src/imports/controls/material/Tumbler.qml +++ b/src/imports/controls/material/Tumbler.qml @@ -35,9 +35,9 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Controls 2.1 +import QtQuick.Controls 2.2 import QtQuick.Controls.impl 2.1 -import QtQuick.Templates 2.1 as T +import QtQuick.Templates 2.2 as T import QtQuick.Controls.Material 2.1 T.Tumbler { diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp index 1b75636a..6ccc5c50 100644 --- a/src/imports/controls/qtquickcontrols2plugin.cpp +++ b/src/imports/controls/qtquickcontrols2plugin.cpp @@ -42,6 +42,7 @@ #include <QtQuickControls2/private/qquickcolorimageprovider_p.h> #include <QtQuickTemplates2/private/qquickbuttongroup_p.h> #include <QtQuickTemplates2/private/qquickcontainer_p.h> +#include <QtQuickTemplates2/private/qquicktumbler_p.h> #include <QtQuickControls2/private/qquicktumblerview_p.h> #include "qquickbusyindicatorring_p.h" @@ -139,6 +140,9 @@ void QtQuickControls2Plugin::registerTypes(const char *uri) qmlRegisterType(selector.select(QStringLiteral("MenuSeparator.qml")), uri, 2, 1, "MenuSeparator"); qmlRegisterType(selector.select(QStringLiteral("RoundButton.qml")), uri, 2, 1, "RoundButton"); qmlRegisterType(selector.select(QStringLiteral("ToolSeparator.qml")), uri, 2, 1, "ToolSeparator"); + + // QtQuick.Controls 2.2 (Qt 5.9) + qmlRegisterRevision<QQuickTumbler, 2>(uri, 2, 2); } static QObject *styleSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) diff --git a/src/imports/controls/universal/Tumbler.qml b/src/imports/controls/universal/Tumbler.qml index 7d639421..b286e2f5 100644 --- a/src/imports/controls/universal/Tumbler.qml +++ b/src/imports/controls/universal/Tumbler.qml @@ -35,9 +35,9 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Templates 2.1 as T +import QtQuick.Templates 2.2 as T import QtQuick.Controls.Universal 2.1 -import QtQuick.Controls 2.1 +import QtQuick.Controls 2.2 import QtQuick.Controls.impl 2.1 T.Tumbler { diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp index 9a9215d9..323c7aed 100644 --- a/src/imports/templates/qtquicktemplates2plugin.cpp +++ b/src/imports/templates/qtquicktemplates2plugin.cpp @@ -196,6 +196,9 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri) qmlRegisterType<QQuickTextField, 1>(uri, 2, 1, "TextField"); qmlRegisterType<QQuickToolSeparator>(uri, 2, 1, "ToolSeparator"); qmlRegisterType<QQuickTumbler, 1>(uri, 2, 1, "Tumbler"); + + // QtQuick.Templates 2.2 (Qt 5.9) + qmlRegisterRevision<QQuickTumbler, 2>(uri, 2, 2); } QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquicktumbler.cpp b/src/quicktemplates2/qquicktumbler.cpp index b7e47ec8..8d0aa4d4 100644 --- a/src/quicktemplates2/qquicktumbler.cpp +++ b/src/quicktemplates2/qquicktumbler.cpp @@ -439,6 +439,19 @@ void QQuickTumbler::resetWrap() d->setWrapBasedOnCount(); } +/*! + \qmlproperty bool QtQuick.Controls::Tumbler::moving + \since QtQuick.Controls 2.2 + + This property describes whether the tumbler is currently moving, due to + the user either dragging or flicking it. +*/ +bool QQuickTumbler::isMoving() const +{ + Q_D(const QQuickTumbler); + return d->view && d->view->property("moving").toBool(); +} + QQuickTumblerAttached *QQuickTumbler::qmlAttachedProperties(QObject *object) { return new QQuickTumblerAttached(object); @@ -505,6 +518,7 @@ void QQuickTumblerPrivate::disconnectFromView() QObject::disconnect(view, SIGNAL(currentIndexChanged()), q, SLOT(_q_onViewCurrentIndexChanged())); QObject::disconnect(view, SIGNAL(currentItemChanged()), q, SIGNAL(currentItemChanged())); QObject::disconnect(view, SIGNAL(countChanged()), q, SLOT(_q_onViewCountChanged())); + QObject::disconnect(view, SIGNAL(movingChanged()), q, SIGNAL(movingChanged())); QQuickItemPrivate *oldViewContentItemPrivate = QQuickItemPrivate::get(viewContentItem); oldViewContentItemPrivate->removeItemChangeListener(this, QQuickItemPrivate::Children); @@ -529,6 +543,7 @@ void QQuickTumblerPrivate::setupViewData(QQuickItem *newControlContentItem) QObject::connect(view, SIGNAL(currentIndexChanged()), q, SLOT(_q_onViewCurrentIndexChanged())); QObject::connect(view, SIGNAL(currentItemChanged()), q, SIGNAL(currentItemChanged())); QObject::connect(view, SIGNAL(countChanged()), q, SLOT(_q_onViewCountChanged())); + QObject::connect(view, SIGNAL(movingChanged()), q, SIGNAL(movingChanged())); QQuickItemPrivate *viewContentItemPrivate = QQuickItemPrivate::get(viewContentItem); viewContentItemPrivate->addItemChangeListener(this, QQuickItemPrivate::Children); diff --git a/src/quicktemplates2/qquicktumbler_p.h b/src/quicktemplates2/qquicktumbler_p.h index 1c8cfa18..3ec4044c 100644 --- a/src/quicktemplates2/qquicktumbler_p.h +++ b/src/quicktemplates2/qquicktumbler_p.h @@ -67,6 +67,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTumbler : public QQuickControl Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL) Q_PROPERTY(int visibleItemCount READ visibleItemCount WRITE setVisibleItemCount NOTIFY visibleItemCountChanged FINAL) Q_PROPERTY(bool wrap READ wrap WRITE setWrap RESET resetWrap NOTIFY wrapChanged FINAL REVISION 1) + Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged FINAL REVISION 2) public: explicit QQuickTumbler(QQuickItem *parent = nullptr); @@ -91,6 +92,8 @@ public: void setWrap(bool wrap); void resetWrap(); + bool isMoving() const; + static QQuickTumblerAttached *qmlAttachedProperties(QObject *object); Q_SIGNALS: @@ -101,6 +104,7 @@ Q_SIGNALS: void delegateChanged(); void visibleItemCountChanged(); Q_REVISION(1) void wrapChanged(); + Q_REVISION(2) void movingChanged(); protected: void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; |