diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-07-14 10:09:41 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-07-14 13:16:21 +0000 |
commit | acecb06f1890feab9fee20345cd768ae61a8ae35 (patch) | |
tree | 6276f226eba82d168af04150f297a012c2a55dd4 /src/quicktemplates2/qquickstackview_p_p.h | |
parent | 16a142977dd328689f2de4eb35c52340aceea204 (diff) |
Refactor QQuickStackView transition startup
Merge the separate but very similar looking popTransition(),
pushTransition(), and replaceTransition() methods to a single
startTransition() method, and pass the necessary arguments in
a QQuickStackTransition structure. This is an enabler step for
being able to specify the desired transition type for replace
(and push & pop, for that matter) operations.
Change-Id: Ia68bb94dc9280aace8718f4df0e798a7f1469e78
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickstackview_p_p.h')
-rw-r--r-- | src/quicktemplates2/qquickstackview_p_p.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/quicktemplates2/qquickstackview_p_p.h b/src/quicktemplates2/qquickstackview_p_p.h index e57353f3..7fe7f005 100644 --- a/src/quicktemplates2/qquickstackview_p_p.h +++ b/src/quicktemplates2/qquickstackview_p_p.h @@ -58,6 +58,7 @@ QT_BEGIN_NAMESPACE class QQmlContext; class QQmlComponent; +struct QQuickStackTransition; class QQuickStackElement : public QQuickItemViewTransitionableItem, public QQuickItemChangeListener { @@ -123,9 +124,7 @@ public: bool replaceElements(QQuickStackElement *element, const QList<QQuickStackElement *> &elements); void ensureTransitioner(); - void popTransition(QQuickStackElement *enter, QQuickStackElement *exit, const QRectF &viewBounds, bool immediate); - void pushTransition(QQuickStackElement *enter, QQuickStackElement *exit, const QRectF &viewBounds, bool immediate); - void replaceTransition(QQuickStackElement *enter, QQuickStackElement *exit, const QRectF &viewBounds, bool immediate); + void startTransition(const QQuickStackTransition &first, const QQuickStackTransition &second, bool immediate); void completeTransition(QQuickStackElement *element, QQuickTransition *transition); void viewItemTransitionFinished(QQuickItemViewTransitionableItem *item) override; @@ -139,6 +138,21 @@ public: QQuickItemViewTransitioner *transitioner; }; +struct QQuickStackTransition +{ + enum Operation { Push, Replace, Pop }; + + static QQuickStackTransition exit(Operation operation, QQuickStackElement *element, QQuickStackView *view); + static QQuickStackTransition enter(Operation operation, QQuickStackElement *element, QQuickStackView *view); + + bool target; + QQuickStackView::Status status; + QQuickItemViewTransitioner::TransitionType type; + QRectF viewBounds; + QQuickStackElement *element; + QQuickTransition *transition; +}; + class QQuickStackAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener { Q_DECLARE_PUBLIC(QQuickStackAttached) |