aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/controls/qquickstackview_p.cpp6
-rw-r--r--tests/auto/controls/data/tst_stackview.qml47
2 files changed, 50 insertions, 3 deletions
diff --git a/src/controls/qquickstackview_p.cpp b/src/controls/qquickstackview_p.cpp
index 6568d344..c0969199 100644
--- a/src/controls/qquickstackview_p.cpp
+++ b/src/controls/qquickstackview_p.cpp
@@ -403,7 +403,7 @@ void QQuickStackViewPrivate::popTransition(QQuickStackElement *enter, QQuickStac
exit->startTransition(transitioner);
}
if (enter) {
- if (immediate || !enter->prepareTransition(transitioner, viewBounds))
+ if (immediate || !enter->prepareTransition(transitioner, QRectF()))
completeTransition(enter, transitioner->removeDisplacedTransition);
else
enter->startTransition(transitioner);
@@ -434,7 +434,7 @@ void QQuickStackViewPrivate::pushTransition(QQuickStackElement *enter, QQuickSta
enter->startTransition(transitioner);
}
if (exit) {
- if (immediate || !exit->prepareTransition(transitioner, viewBounds))
+ if (immediate || !exit->prepareTransition(transitioner, QRectF()))
completeTransition(exit, transitioner->addDisplacedTransition);
else
exit->startTransition(transitioner);
@@ -466,7 +466,7 @@ void QQuickStackViewPrivate::replaceTransition(QQuickStackElement *enter, QQuick
enter->startTransition(transitioner);
}
if (exit) {
- if (immediate || !exit->prepareTransition(transitioner, viewBounds))
+ if (immediate || !exit->prepareTransition(transitioner, QRectF()))
completeTransition(exit, transitioner->addDisplacedTransition);
else
exit->startTransition(transitioner);
diff --git a/tests/auto/controls/data/tst_stackview.qml b/tests/auto/controls/data/tst_stackview.qml
index 3c54e60b..3a26b423 100644
--- a/tests/auto/controls/data/tst_stackview.qml
+++ b/tests/auto/controls/data/tst_stackview.qml
@@ -428,4 +428,51 @@ TestCase {
control.destroy()
}
+
+ Component {
+ id: transitionView
+ StackView {
+ property int popEnterRuns
+ property int popExitRuns
+ property int pushEnterRuns
+ property int pushExitRuns
+ popEnter: Transition {
+ PauseAnimation { duration: 1 }
+ onRunningChanged: if (!running) ++popEnterRuns
+ }
+ popExit: Transition {
+ PauseAnimation { duration: 1 }
+ onRunningChanged: if (!running) ++popExitRuns
+ }
+ pushEnter: Transition {
+ PauseAnimation { duration: 1 }
+ onRunningChanged: if (!running) ++pushEnterRuns
+ }
+ pushExit: Transition {
+ PauseAnimation { duration: 1 }
+ onRunningChanged: if (!running) ++pushExitRuns
+ }
+ }
+ }
+
+ function test_transitions() {
+ var control = transitionView.createObject(testCase)
+
+ control.push(component)
+ verify(!control.busy)
+ compare(control.pushEnterRuns, 0)
+ compare(control.pushExitRuns, 0)
+
+ control.push(component)
+ tryCompare(control, "busy", false)
+ compare(control.pushEnterRuns, 1)
+ compare(control.pushExitRuns, 1)
+
+ control.pop()
+ tryCompare(control, "busy", false)
+ compare(control.popEnterRuns, 1)
+ compare(control.popExitRuns, 1)
+
+ control.destroy()
+ }
}