diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-06-17 13:32:09 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-06-20 05:19:41 +0000 |
commit | 6a8f7b88a7a71126ac8bbf1815362351b9db954b (patch) | |
tree | 4eeedad31b31ace0d0a5caf101d19ff9c0d67239 | |
parent | 47744a1d5c91cad58b94ba3cc3b886793789e870 (diff) |
Add QQuickContainer::increment|decrementCurrentIndex()
[ChangeLog][Container] Added incrementCurrentIndex() and
decrementCurrentIndex() methods for changing the current
index without losing its property binding.
Change-Id: Id44e0db5e3d0951eb77b0124a83c5eb3df898012
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r-- | src/imports/controls/SwipeView.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/TabBar.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/material/SwipeView.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/material/TabBar.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/qtquickcontrols2plugin.cpp | 1 | ||||
-rw-r--r-- | src/imports/controls/universal/TabBar.qml | 2 | ||||
-rw-r--r-- | src/imports/templates/qtquicktemplates2plugin.cpp | 1 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontainer.cpp | 32 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontainer_p.h | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_swipeview.qml | 12 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_tabbar.qml | 12 |
11 files changed, 64 insertions, 8 deletions
diff --git a/src/imports/controls/SwipeView.qml b/src/imports/controls/SwipeView.qml index 71676f12..736d963b 100644 --- a/src/imports/controls/SwipeView.qml +++ b/src/imports/controls/SwipeView.qml @@ -35,8 +35,8 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Controls 2.0 -import QtQuick.Templates 2.0 as T +import QtQuick.Controls 2.1 +import QtQuick.Templates 2.1 as T T.SwipeView { id: control diff --git a/src/imports/controls/TabBar.qml b/src/imports/controls/TabBar.qml index 6f3e040b..5fa81f38 100644 --- a/src/imports/controls/TabBar.qml +++ b/src/imports/controls/TabBar.qml @@ -35,7 +35,7 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Templates 2.0 as T +import QtQuick.Templates 2.1 as T T.TabBar { id: control diff --git a/src/imports/controls/material/SwipeView.qml b/src/imports/controls/material/SwipeView.qml index 38c12b6b..92e1b8a6 100644 --- a/src/imports/controls/material/SwipeView.qml +++ b/src/imports/controls/material/SwipeView.qml @@ -35,7 +35,7 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Templates 2.0 as T +import QtQuick.Templates 2.1 as T T.SwipeView { id: control diff --git a/src/imports/controls/material/TabBar.qml b/src/imports/controls/material/TabBar.qml index 22a80efa..e6507d31 100644 --- a/src/imports/controls/material/TabBar.qml +++ b/src/imports/controls/material/TabBar.qml @@ -35,7 +35,7 @@ ****************************************************************************/ import QtQuick 2.6 -import QtQuick.Templates 2.0 as T +import QtQuick.Templates 2.1 as T import QtQuick.Controls.Material 2.0 import QtQuick.Controls.Material.impl 2.0 diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp index fae77543..84c17267 100644 --- a/src/imports/controls/qtquickcontrols2plugin.cpp +++ b/src/imports/controls/qtquickcontrols2plugin.cpp @@ -137,6 +137,7 @@ void QtQuickControls2Plugin::registerTypes(const char *uri) // QtQuick.Controls 2.1 (Qt 5.8) qmlRegisterType<QQuickButtonGroup,1 >(uri, 2, 1, "ButtonGroup"); + qmlRegisterType<QQuickContainer,1>(uri, 2, 1, "Container"); qmlRegisterType(selector.select(QStringLiteral("DialogButtonBox.qml")), uri, 2, 1, "DialogButtonBox"); qmlRegisterType(selector.select(QStringLiteral("Slider.qml")), uri, 2, 1, "Slider"); qmlRegisterType(selector.select(QStringLiteral("StackView.qml")), uri, 2, 1, "StackView"); diff --git a/src/imports/controls/universal/TabBar.qml b/src/imports/controls/universal/TabBar.qml index 7c2e83a6..d41a24a5 100644 --- a/src/imports/controls/universal/TabBar.qml +++ b/src/imports/controls/universal/TabBar.qml @@ -35,7 +35,7 @@ ****************************************************************************/ import QtQuick 2.7 -import QtQuick.Templates 2.0 as T +import QtQuick.Templates 2.1 as T import QtQuick.Controls.Universal 2.0 T.TabBar { diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp index eee27e50..07a4653f 100644 --- a/src/imports/templates/qtquicktemplates2plugin.cpp +++ b/src/imports/templates/qtquicktemplates2plugin.cpp @@ -175,6 +175,7 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri) // QtQuick.Controls 2.1 (Qt 5.8) qmlRegisterType<QQuickButtonGroup, 1>(uri, 2, 1, "ButtonGroup"); + qmlRegisterType<QQuickContainer, 1>(uri, 2, 1, "Container"); qmlRegisterType<QQuickDialogButtonBox>(uri, 2, 1, "DialogButtonBox"); qmlRegisterType<QQuickDialogButtonBoxAttached>(); qmlRegisterType<QQuickSlider, 1>(uri, 2, 1, "Slider"); diff --git a/src/quicktemplates2/qquickcontainer.cpp b/src/quicktemplates2/qquickcontainer.cpp index ff5b694b..55e27887 100644 --- a/src/quicktemplates2/qquickcontainer.cpp +++ b/src/quicktemplates2/qquickcontainer.cpp @@ -437,6 +437,8 @@ QQmlListProperty<QQuickItem> QQuickContainer::contentChildren() \qmlproperty int QtQuick.Controls::Container::currentIndex This property holds the index of the current item in the container. + + \sa incrementCurrentIndex(), decrementCurrentIndex() */ int QQuickContainer::currentIndex() const { @@ -456,6 +458,36 @@ void QQuickContainer::setCurrentIndex(int index) } /*! + \qmlmethod void QtQuick.Controls::Container::incrementCurrentIndex() + \since QtQuick.Controls 2.1 + + Increments the current index of the container. + + \sa currentIndex +*/ +void QQuickContainer::incrementCurrentIndex() +{ + Q_D(QQuickContainer); + if (d->currentIndex < count() - 1) + setCurrentIndex(d->currentIndex + 1); +} + +/*! + \qmlmethod void QtQuick.Controls::Container::decrementCurrentIndex() + \since QtQuick.Controls 2.1 + + Decrements the current index of the container. + + \sa currentIndex +*/ +void QQuickContainer::decrementCurrentIndex() +{ + Q_D(QQuickContainer); + if (d->currentIndex > 0) + setCurrentIndex(d->currentIndex - 1); +} + +/*! \qmlproperty Item QtQuick.Controls::Container::currentItem This property holds the current item. diff --git a/src/quicktemplates2/qquickcontainer_p.h b/src/quicktemplates2/qquickcontainer_p.h index 2ed30b77..98873c09 100644 --- a/src/quicktemplates2/qquickcontainer_p.h +++ b/src/quicktemplates2/qquickcontainer_p.h @@ -86,6 +86,8 @@ public: public Q_SLOTS: void setCurrentIndex(int index); + Q_REVISION(1) void incrementCurrentIndex(); + Q_REVISION(1) void decrementCurrentIndex(); Q_SIGNALS: void countChanged(); diff --git a/tests/auto/controls/data/tst_swipeview.qml b/tests/auto/controls/data/tst_swipeview.qml index 74ae12c5..b131236d 100644 --- a/tests/auto/controls/data/tst_swipeview.qml +++ b/tests/auto/controls/data/tst_swipeview.qml @@ -40,7 +40,7 @@ import QtQuick 2.2 import QtTest 1.0 -import QtQuick.Controls 2.0 +import QtQuick.Controls 2.1 TestCase { id: testCase @@ -107,6 +107,16 @@ TestCase { compare(control.currentItem.text, "2") compare(currentItemChangedSpy.count, 3); + control.decrementCurrentIndex() + compare(control.currentIndex, 1) + compare(control.currentItem.text, "1") + compare(currentItemChangedSpy.count, 4); + + control.incrementCurrentIndex() + compare(control.currentIndex, 2) + compare(control.currentItem.text, "2") + compare(currentItemChangedSpy.count, 5); + control.destroy() } diff --git a/tests/auto/controls/data/tst_tabbar.qml b/tests/auto/controls/data/tst_tabbar.qml index b46f7f00..666fc2cb 100644 --- a/tests/auto/controls/data/tst_tabbar.qml +++ b/tests/auto/controls/data/tst_tabbar.qml @@ -40,7 +40,7 @@ import QtQuick 2.2 import QtTest 1.0 -import QtQuick.Controls 2.0 +import QtQuick.Controls 2.1 TestCase { id: testCase @@ -144,6 +144,16 @@ TestCase { compare(control.currentItem.text, "2") compare(control.currentItem.checked, true) + control.decrementCurrentIndex() + compare(control.currentIndex, 1) + compare(control.currentItem.text, "1") + compare(control.currentItem.checked, true) + + control.incrementCurrentIndex() + compare(control.currentIndex, 2) + compare(control.currentItem.text, "2") + compare(control.currentItem.checked, true) + control.destroy() } |