diff options
author | Liang Qi <liang.qi@qt.io> | 2017-01-25 12:10:30 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-01-25 12:10:38 +0100 |
commit | f2602121228e910b9e400dadd2b8ee951052c3ba (patch) | |
tree | 6a07770f72864eca6d7903c58ebcdb869b47deb1 | |
parent | 5d1e3348c1e65f78e70be0c7a6dad58b57da33d9 (diff) | |
parent | 1041a95eb07e5cd25d96eec9dfc2243144638183 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I83cbec9264a8bc620badf210eee53b57f2b93ff0
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 8 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_popup.qml | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 5feb9640..f6101973 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -1729,8 +1729,12 @@ void QQuickPopup::componentComplete() { Q_D(QQuickPopup); d->complete = true; - if (!parentItem()) - setParentItem(qobject_cast<QQuickItem *>(parent())); + if (!parentItem()) { + if (QQuickItem *item = qobject_cast<QQuickItem *>(parent())) + setParentItem(item); + else if (QQuickWindow *window = qobject_cast<QQuickWindow *>(parent())) + setParentItem(window->contentItem()); + } if (d->visible) d->transitionManager.transitionEnter(); d->popupItem->componentComplete(); diff --git a/tests/auto/controls/data/tst_popup.qml b/tests/auto/controls/data/tst_popup.qml index 6294250e..3d88e62a 100644 --- a/tests/auto/controls/data/tst_popup.qml +++ b/tests/auto/controls/data/tst_popup.qml @@ -1230,4 +1230,14 @@ TestCase { compare(control.x, (control.parent.width - control.width) / 2) compare(control.y, (control.parent.height - control.height) / 2) } + + function test_windowParent() { + var control = popupControl.createObject(applicationWindow, {width: 100, height: 100}) + verify(control) + + control.open() + verify(control.visible) + + control.destroy() + } } |