diff options
Diffstat (limited to 'src/quicktemplates2/qquickstackview_p.cpp')
-rw-r--r-- | src/quicktemplates2/qquickstackview_p.cpp | 53 |
1 files changed, 45 insertions, 8 deletions
diff --git a/src/quicktemplates2/qquickstackview_p.cpp b/src/quicktemplates2/qquickstackview_p.cpp index c021ba77..5d25793e 100644 --- a/src/quicktemplates2/qquickstackview_p.cpp +++ b/src/quicktemplates2/qquickstackview_p.cpp @@ -501,7 +501,7 @@ void QQuickStackViewPrivate::setBusy(bool b) emit q->busyChanged(); } -QQuickStackTransition QQuickStackTransition::exit(Operation operation, QQuickStackElement *element, QQuickStackView *view) +static QQuickStackTransition exitTransition(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) { QQuickStackTransition st; st.status = QQuickStackView::Deactivating; @@ -511,21 +511,21 @@ QQuickStackTransition QQuickStackTransition::exit(Operation operation, QQuickSta const QQuickItemViewTransitioner *transitioner = QQuickStackViewPrivate::get(view)->transitioner; switch (operation) { - case Push: + case QQuickStackView::PushTransition: st.target = false; st.type = QQuickItemViewTransitioner::AddTransition; st.viewBounds = QRectF(); if (transitioner) st.transition = transitioner->addDisplacedTransition; break; - case Replace: + case QQuickStackView::ReplaceTransition: st.target = false; st.type = QQuickItemViewTransitioner::MoveTransition; st.viewBounds = QRectF(); if (transitioner) st.transition = transitioner->moveDisplacedTransition; break; - case Pop: + case QQuickStackView::PopTransition: st.target = true; st.type = QQuickItemViewTransitioner::RemoveTransition; st.viewBounds = view->boundingRect(); @@ -540,7 +540,7 @@ QQuickStackTransition QQuickStackTransition::exit(Operation operation, QQuickSta return st; } -QQuickStackTransition QQuickStackTransition::enter(Operation operation, QQuickStackElement *element, QQuickStackView *view) +static QQuickStackTransition enterTransition(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) { QQuickStackTransition st; st.status = QQuickStackView::Activating; @@ -550,21 +550,21 @@ QQuickStackTransition QQuickStackTransition::enter(Operation operation, QQuickSt const QQuickItemViewTransitioner *transitioner = QQuickStackViewPrivate::get(view)->transitioner; switch (operation) { - case Push: + case QQuickStackView::PushTransition: st.target = true; st.type = QQuickItemViewTransitioner::AddTransition; st.viewBounds = view->boundingRect(); if (transitioner) st.transition = transitioner->addTransition; break; - case Replace: + case QQuickStackView::ReplaceTransition: st.target = true; st.type = QQuickItemViewTransitioner::MoveTransition; st.viewBounds = view->boundingRect(); if (transitioner) st.transition = transitioner->moveTransition; break; - case Pop: + case QQuickStackView::PopTransition: st.target = false; st.type = QQuickItemViewTransitioner::RemoveTransition; st.viewBounds = QRectF(); @@ -579,4 +579,41 @@ QQuickStackTransition QQuickStackTransition::enter(Operation operation, QQuickSt return st; } +static QQuickStackView::Operation operationTransition(QQuickStackView::Operation operation, QQuickStackView::Operation transition) +{ + if (operation == QQuickStackView::Immediate || operation == QQuickStackView::Transition) + return transition; + return operation; +} + +QQuickStackTransition QQuickStackTransition::popExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) +{ + return exitTransition(operationTransition(operation, QQuickStackView::PopTransition), element, view); +} + +QQuickStackTransition QQuickStackTransition::popEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) +{ + return enterTransition(operationTransition(operation, QQuickStackView::PopTransition), element, view); +} + +QQuickStackTransition QQuickStackTransition::pushExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) +{ + return exitTransition(operationTransition(operation, QQuickStackView::PushTransition), element, view); +} + +QQuickStackTransition QQuickStackTransition::pushEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) +{ + return enterTransition(operationTransition(operation, QQuickStackView::PushTransition), element, view); +} + +QQuickStackTransition QQuickStackTransition::replaceExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) +{ + return exitTransition(operationTransition(operation, QQuickStackView::ReplaceTransition), element, view); +} + +QQuickStackTransition QQuickStackTransition::replaceEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view) +{ + return enterTransition(operationTransition(operation, QQuickStackView::ReplaceTransition), element, view); +} + QT_END_NAMESPACE |