diff options
-rw-r--r-- | src/quicktemplates2/qquickstackview_p.cpp | 4 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_stackview.qml | 21 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickstackview_p.cpp b/src/quicktemplates2/qquickstackview_p.cpp index d91c229d..ca2f5661 100644 --- a/src/quicktemplates2/qquickstackview_p.cpp +++ b/src/quicktemplates2/qquickstackview_p.cpp @@ -91,6 +91,10 @@ QQuickStackElement::~QQuickStackElement() item = nullptr; } else { item->setVisible(false); + if (!widthValid) + item->resetWidth(); + if (!heightValid) + item->resetHeight(); if (item->parentItem() != originalParent) { item->setParentItem(originalParent); } else { diff --git a/tests/auto/controls/data/tst_stackview.qml b/tests/auto/controls/data/tst_stackview.qml index d8e1e722..9966fa47 100644 --- a/tests/auto/controls/data/tst_stackview.qml +++ b/tests/auto/controls/data/tst_stackview.qml @@ -243,10 +243,31 @@ TestCase { verify(container) var control = stackView.createObject(container, {width: 100, height: 100}) verify(control) + container.width += 10 container.height += 20 compare(control.width, 100) compare(control.height, 100) + + control.push(item, StackView.Immediate) + compare(item.width, control.width) + compare(item.height, control.height) + + control.width = 200 + control.height = 200 + compare(item.width, control.width) + compare(item.height, control.height) + + control.clear() + control.width += 10 + control.height += 20 + verify(item.width !== control.width) + verify(item.height !== control.height) + + control.push(item, StackView.Immediate) + compare(item.width, control.width) + compare(item.height, control.height) + container.destroy() } |