aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-05-27 09:51:35 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-06-06 18:16:46 +0000
commit3ec6f508aa485b1162d7d8f7bc57401b43ded470 (patch)
tree924fe6c0da4951dd92459e2becfc8da9c4d66110 /src/quicktemplates2
parent51c181776f2c389d6b12d78514008d3208841192 (diff)
StackView: add attached activated() etc. signals
For initializing and cleaning up item-specific resources, these are much more convenient than a StackView.onStatusChanged handler. [ChangeLog][StackView] Added attached activated(), deactivated(), activating(), and deactivating() signals that are convenient for initializing and cleaning up item-specific resources. Change-Id: If8df45b31a14cd2491db2c87eeb1c071af4e695f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2')
-rw-r--r--src/quicktemplates2/qquickstackview.cpp38
-rw-r--r--src/quicktemplates2/qquickstackview_p.cpp24
-rw-r--r--src/quicktemplates2/qquickstackview_p.h4
3 files changed, 64 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickstackview.cpp b/src/quicktemplates2/qquickstackview.cpp
index 9c9cd5c2..d75dfc23 100644
--- a/src/quicktemplates2/qquickstackview.cpp
+++ b/src/quicktemplates2/qquickstackview.cpp
@@ -988,4 +988,42 @@ QQuickStackView::Status QQuickStackAttached::status() const
return d->element ? d->element->status : QQuickStackView::Inactive;
}
+/*!
+ \qmlattachedsignal QtQuick.Controls::StackView::activated()
+ \since QtQuick.Controls 2.1
+
+ This attached signal is emitted when the item it's attached to is activated in the stack.
+
+ \sa status
+*/
+
+/*!
+ \qmlattachedsignal QtQuick.Controls::StackView::deactivated()
+ \since QtQuick.Controls 2.1
+
+ This attached signal is emitted when the item it's attached to is deactivated in the stack.
+
+ \sa status
+*/
+
+/*!
+ \qmlattachedsignal QtQuick.Controls::StackView::activating()
+ \since QtQuick.Controls 2.1
+
+ This attached signal is emitted when the item it's attached to is in the process of being
+ activated in the stack.
+
+ \sa status
+*/
+
+/*!
+ \qmlattachedsignal QtQuick.Controls::StackView::deactivating()
+ \since QtQuick.Controls 2.1
+
+ This attached signal is emitted when the item it's attached to is in the process of being
+ dectivated in the stack.
+
+ \sa status
+*/
+
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickstackview_p.cpp b/src/quicktemplates2/qquickstackview_p.cpp
index 809f7386..5a83f5e5 100644
--- a/src/quicktemplates2/qquickstackview_p.cpp
+++ b/src/quicktemplates2/qquickstackview_p.cpp
@@ -221,8 +221,28 @@ void QQuickStackElement::setStatus(QQuickStackView::Status value)
status = value;
QQuickStackAttached *attached = attachedStackObject(this);
- if (attached)
- emit attached->statusChanged();
+ if (!attached)
+ return;
+
+ switch (value) {
+ case QQuickStackView::Inactive:
+ emit attached->deactivated();
+ break;
+ case QQuickStackView::Deactivating:
+ emit attached->deactivating();
+ break;
+ case QQuickStackView::Activating:
+ emit attached->activating();
+ break;
+ case QQuickStackView::Active:
+ emit attached->activated();
+ break;
+ default:
+ Q_UNREACHABLE();
+ break;
+ }
+
+ emit attached->statusChanged();
}
void QQuickStackElement::transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type, bool asTarget)
diff --git a/src/quicktemplates2/qquickstackview_p.h b/src/quicktemplates2/qquickstackview_p.h
index 5c119627..790ac4c5 100644
--- a/src/quicktemplates2/qquickstackview_p.h
+++ b/src/quicktemplates2/qquickstackview_p.h
@@ -175,6 +175,10 @@ Q_SIGNALS:
void indexChanged();
void viewChanged();
void statusChanged();
+ Q_REVISION(1) void activated();
+ Q_REVISION(1) void activating();
+ Q_REVISION(1) void deactivated();
+ Q_REVISION(1) void deactivating();
private:
Q_DISABLE_COPY(QQuickStackAttached)