aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitemsmodule.cpp
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2015-01-15 16:05:26 +0100
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2015-01-16 15:01:31 +0100
commita704040dc4dd312e6d0552e6d9e6715f988ea39a (patch)
treeb82a73ae61160ea2bb82089c0e63a6e9c6cd17ec /src/quick/items/qquickitemsmodule.cpp
parent4426aa4055f75621f2b884a4ed5ab224ab0632da (diff)
Avoid an incorrect warning when dynamically parenting a Window
"Created graphical object was not placed in the graphics scene." QQuickWindow is the root of a graphics scene and doesn't need to be inside another one. It is already suggested in the Window documentation that Window can be an inline child of a top-level QtObject. This patch fixer the warning when dynamically creating a Window component. Change-Id: Ie6d9d37b9e9ffdb61101aaaad6f4b722216ec759 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/quick/items/qquickitemsmodule.cpp')
-rw-r--r--src/quick/items/qquickitemsmodule.cpp34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp
index eb3e617e7c..e749e7d98a 100644
--- a/src/quick/items/qquickitemsmodule.cpp
+++ b/src/quick/items/qquickitemsmodule.cpp
@@ -83,8 +83,7 @@ static QQmlPrivate::AutoParentResult qquickitem_autoParent(QObject *obj, QObject
{
// When setting a parent (especially during dynamic object creation) in QML,
// also try to set up the analogous item/window relationship.
- QQuickItem *parentItem = qmlobject_cast<QQuickItem *>(parent);
- if (parentItem) {
+ if (QQuickItem *parentItem = qmlobject_cast<QQuickItem *>(parent)) {
QQuickItem *item = qmlobject_cast<QQuickItem *>(obj);
if (item) {
// An Item has another Item
@@ -99,26 +98,25 @@ static QQmlPrivate::AutoParentResult qquickitem_autoParent(QObject *obj, QObject
}
}
return QQmlPrivate::IncompatibleObject;
- } else {
- QQuickWindow *parentWindow = qmlobject_cast<QQuickWindow *>(parent);
- if (parentWindow) {
- QQuickWindow *win = qmlobject_cast<QQuickWindow *>(obj);
- if (win) {
- // A Window inside a Window should be transient for it
- win->setTransientParent(parentWindow);
+ } else if (QQuickWindow *parentWindow = qmlobject_cast<QQuickWindow *>(parent)) {
+ QQuickWindow *win = qmlobject_cast<QQuickWindow *>(obj);
+ if (win) {
+ // A Window inside a Window should be transient for it
+ win->setTransientParent(parentWindow);
+ return QQmlPrivate::Parented;
+ } else {
+ QQuickItem *item = qmlobject_cast<QQuickItem *>(obj);
+ if (item) {
+ // The parent of an Item inside a Window is actually the implicit content Item
+ item->setParentItem(parentWindow->contentItem());
return QQmlPrivate::Parented;
- } else {
- QQuickItem *item = qmlobject_cast<QQuickItem *>(obj);
- if (item) {
- // The parent of an Item inside a Window is actually the implicit content Item
- item->setParentItem(parentWindow->contentItem());
- return QQmlPrivate::Parented;
- }
}
- return QQmlPrivate::IncompatibleObject;
}
+ return QQmlPrivate::IncompatibleObject;
+ } else if (qmlobject_cast<QQuickItem *>(obj)) {
+ return QQmlPrivate::IncompatibleParent;
}
- return QQmlPrivate::IncompatibleParent;
+ return QQmlPrivate::IncompatibleObject;
}
static void qt_quickitems_defineModule(const char *uri, int major, int minor)