aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickitem/data
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-03-28 18:41:26 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-28 23:02:34 +0100
commit8b371173c4fed7df453a0e352af54e3363709d4b (patch)
treec6b34db3954572b896fe6ac94d37bd68ba6f725a /tests/auto/quick/qquickitem/data
parent9614dc2c51b54e32de7dac3543c3e044d0b3c240 (diff)
Fix visual parent ownership with scenes that create windows
Commit 39540124dd0900e0c99dcda8c0ebdf4f3cea8d5e introduced the concept that a visual parent marks its children, by recursively marking the children of the root item in a QQuickView. This allowed for the removal of an ugly hack in QtQuick Controls. Unfortunately that fix is incomplete in the sense that it makes the incorrect assumption that a QQuickView is always used. The use-case in the bug report is to have child items inside a QtQuick.Window (a regular ApplicationWindow in fact). That window - implemented by QQuickWindowQmlImpl - also needs to mark its children, so this patch introduces the use of the same GC marking helper class (which now operates on a QQuickWindow instead of a QQuickViewPrivate). Task-number: QTBUG-37711 Change-Id: Id788e84dbb041ac8ba6ff23dc4ef56f6fe9e465a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'tests/auto/quick/qquickitem/data')
-rw-r--r--tests/auto/quick/qquickitem/data/visualParentOwnershipWindow.qml15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickitem/data/visualParentOwnershipWindow.qml b/tests/auto/quick/qquickitem/data/visualParentOwnershipWindow.qml
new file mode 100644
index 0000000000..30fc844d7a
--- /dev/null
+++ b/tests/auto/quick/qquickitem/data/visualParentOwnershipWindow.qml
@@ -0,0 +1,15 @@
+import QtQuick 2.0
+import QtQuick.Window 2.1
+
+Window {
+ Component {
+ id: factory
+ Item {}
+ }
+
+ property Item keepAliveProperty;
+
+ function createItemWithoutParent() {
+ return factory.createObject(/*parent*/ null);
+ }
+}