From b94889f49170e3d8df5b348d3f179445d892f232 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 26 Jul 2017 13:07:17 +0200 Subject: Fix QQuickStackViewPrivate::viewItemTransitionFinished() ~QQuickStackElement() emits QQuickStackViewAttached::removed(), which may be used to modify the stack. Set the status first and make a copy of the destroyable stack elements to exclude any modifications that may happen during the loop. Task-number: QTBUG-62153 Change-Id: I144acd693519e637b78f9a2d910e83da8f2d779e Reviewed-by: Mitch Curtis --- tests/auto/controls/data/tst_stackview.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests') diff --git a/tests/auto/controls/data/tst_stackview.qml b/tests/auto/controls/data/tst_stackview.qml index 3328c84f..0f73b631 100644 --- a/tests/auto/controls/data/tst_stackview.qml +++ b/tests/auto/controls/data/tst_stackview.qml @@ -726,6 +726,19 @@ TestCase { compare(control.busy, false) } + function test_pushOnRemoved() { + var control = createTemporaryObject(stackView, testCase, { initialItem: component }) + verify(control) + + var item = control.push(component, StackView.Immediate) + verify(item) + + item.StackView.onRemoved.connect(function() { control.push(component, StackView.Immediate) } ) + + // don't crash (QTBUG-62153) + control.pop(StackView.Immediate) + } + Component { id: attachedItem Item { -- cgit v1.2.3