diff options
-rw-r--r-- | src/templates/qquickstackview_p.cpp | 7 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_stackview.qml | 19 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/templates/qquickstackview_p.cpp b/src/templates/qquickstackview_p.cpp index ffd9934e..dbcb186a 100644 --- a/src/templates/qquickstackview_p.cpp +++ b/src/templates/qquickstackview_p.cpp @@ -139,16 +139,19 @@ bool QQuickStackElement::load(QQuickStackView *parent) delete incubator; incubator = new QQuickStackIncubator(this); component->create(*incubator, context); + } else { + initialize(); } - initialize(); return item; } void QQuickStackElement::incubate(QObject *object) { item = qmlobject_cast<QQuickItem *>(object); - if (item) + if (item) { QQmlEngine::setObjectOwnership(item, QQmlEngine::CppOwnership); + initialize(); + } } void QQuickStackElement::initialize() diff --git a/tests/auto/controls/data/tst_stackview.qml b/tests/auto/controls/data/tst_stackview.qml index 1cd12af3..6869ddac 100644 --- a/tests/auto/controls/data/tst_stackview.qml +++ b/tests/auto/controls/data/tst_stackview.qml @@ -757,4 +757,23 @@ TestCase { control.destroy() } + + Component { + id: rectangle + Rectangle { + property color initialColor + Component.onCompleted: initialColor = color + } + } + + function test_properties() { + var control = stackView.createObject(testCase) + verify(control) + + var rect = control.push(rectangle, {color: "#ff0000"}) + compare(rect.color, "#ff0000") + compare(rect.initialColor, "#ff0000") + + control.destroy() + } } |