aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickstackview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2/qquickstackview.cpp')
-rw-r--r--src/quicktemplates2/qquickstackview.cpp61
1 files changed, 49 insertions, 12 deletions
diff --git a/src/quicktemplates2/qquickstackview.cpp b/src/quicktemplates2/qquickstackview.cpp
index 46c1d96e..6fd681c5 100644
--- a/src/quicktemplates2/qquickstackview.cpp
+++ b/src/quicktemplates2/qquickstackview.cpp
@@ -430,8 +430,11 @@ QQuickItem *QQuickStackView::find(const QJSValue &callback, LoadBehavior behavio
An \a operation can be optionally specified as the last argument. Supported
operations:
- \value StackView.Transition An operation with transitions.
+ \value StackView.Transition An operation with default transitions (default).
\value StackView.Immediate An immediate operation without transitions.
+ \value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
+ \value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
+ \value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
\sa initialItem
*/
@@ -447,7 +450,7 @@ void QQuickStackView::push(QQmlV4Function *args)
QV4::ExecutionEngine *v4 = args->v4engine();
QV4::Scope scope(v4);
- Operation operation = d->elements.isEmpty() ? Immediate : Transition;
+ Operation operation = d->elements.isEmpty() ? Immediate : PushTransition;
QV4::ScopedValue lastArg(scope, (*args)[args->length() - 1]);
if (lastArg->isInt32())
operation = static_cast<Operation>(lastArg->toInt32());
@@ -466,8 +469,8 @@ void QQuickStackView::push(QQmlV4Function *args)
if (d->pushElements(elements)) {
emit depthChanged();
QQuickStackElement *enter = d->elements.top();
- d->startTransition(QQuickStackTransition::enter(QQuickStackTransition::Push, enter, this),
- QQuickStackTransition::exit(QQuickStackTransition::Push, exit, this),
+ d->startTransition(QQuickStackTransition::pushEnter(operation, enter, this),
+ QQuickStackTransition::pushExit(operation, exit, this),
operation == Immediate);
d->setCurrentItem(enter->item);
}
@@ -493,8 +496,11 @@ void QQuickStackView::push(QQmlV4Function *args)
An \a operation can be optionally specified as the last argument. Supported
operations:
- \value StackView.Transition An operation with transitions.
+ \value StackView.Transition An operation with default transitions (default).
\value StackView.Immediate An immediate operation without transitions.
+ \value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
+ \value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
+ \value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
Examples:
\code
@@ -540,7 +546,7 @@ void QQuickStackView::pop(QQmlV4Function *args)
}
}
- Operation operation = Transition;
+ Operation operation = PopTransition;
if (argc > 0) {
QV4::ScopedValue lastArg(scope, (*args)[argc - 1]);
if (lastArg->isInt32())
@@ -555,8 +561,8 @@ void QQuickStackView::pop(QQmlV4Function *args)
previousItem = exit->item;
}
emit depthChanged();
- d->startTransition(QQuickStackTransition::exit(QQuickStackTransition::Pop, exit, this),
- QQuickStackTransition::enter(QQuickStackTransition::Pop, enter, this),
+ d->startTransition(QQuickStackTransition::popExit(operation, exit, this),
+ QQuickStackTransition::popEnter(operation, enter, this),
operation == Immediate);
d->setCurrentItem(enter->item);
}
@@ -612,8 +618,39 @@ void QQuickStackView::pop(QQmlV4Function *args)
An \a operation can be optionally specified as the last argument. Supported
operations:
- \value StackView.Transition An operation with transitions.
+ \value StackView.Transition An operation with default transitions (default).
\value StackView.Immediate An immediate operation without transitions.
+ \value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
+ \value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
+ \value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
+
+ The following example illustrates the use of push and pop transitions with replace().
+
+ \code
+ StackView {
+ id: stackView
+
+ initialItem: Component {
+ id: page
+
+ Page {
+ Row {
+ spacing: 20
+ anchors.centerIn: parent
+
+ Button {
+ text: "<"
+ onClicked: stackView.replace(page, StackView.PopTransition)
+ }
+ Button {
+ text: ">"
+ onClicked: stackView.replace(page, StackView.PushTransition)
+ }
+ }
+ }
+ }
+ }
+ \endcode
\sa push()
*/
@@ -629,7 +666,7 @@ void QQuickStackView::replace(QQmlV4Function *args)
QV4::ExecutionEngine *v4 = args->v4engine();
QV4::Scope scope(v4);
- Operation operation = d->elements.isEmpty() ? Immediate : Transition;
+ Operation operation = d->elements.isEmpty() ? Immediate : ReplaceTransition;
QV4::ScopedValue lastArg(scope, (*args)[args->length() - 1]);
if (lastArg->isInt32())
operation = static_cast<Operation>(lastArg->toInt32());
@@ -659,8 +696,8 @@ void QQuickStackView::replace(QQmlV4Function *args)
if (exit)
exit->removal = true;
QQuickStackElement *enter = d->elements.top();
- d->startTransition(QQuickStackTransition::exit(QQuickStackTransition::Replace, exit, this),
- QQuickStackTransition::enter(QQuickStackTransition::Replace, enter, this),
+ d->startTransition(QQuickStackTransition::replaceExit(operation, exit, this),
+ QQuickStackTransition::replaceEnter(operation, enter, this),
operation == Immediate);
d->setCurrentItem(enter->item);
}