diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-07-11 16:04:17 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-07-12 08:04:58 +0000 |
commit | bdebb54522f82a9d18d231a183fffaadd6e3479e (patch) | |
tree | 5914430c8d53c93791525b7cf45f38062795365b /src | |
parent | b9637d71b391c165b8e6b1177e1ca1dc81557d76 (diff) |
QQuickPopup: add reset-method for parent
Change-Id: Ia7d205bacf4da4cb13e31ab34fb62d13a77f7ddd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 16 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopup_p.h | 3 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 81e50642..39bd56a1 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -1570,6 +1570,14 @@ void QQuickPopup::setParentItem(QQuickItem *parent) emit parentChanged(); } +void QQuickPopup::resetParentItem() +{ + if (QQuickWindow *window = qobject_cast<QQuickWindow *>(parent())) + setParentItem(window->contentItem()); + else + setParentItem(qobject_cast<QQuickItem *>(parent())); +} + /*! \qmlproperty Item QtQuick.Controls::Popup::background @@ -2107,12 +2115,8 @@ void QQuickPopup::classBegin() void QQuickPopup::componentComplete() { Q_D(QQuickPopup); - if (!parentItem()) { - if (QQuickItem *item = qobject_cast<QQuickItem *>(parent())) - setParentItem(item); - else if (QQuickWindow *window = qobject_cast<QQuickWindow *>(parent())) - setParentItem(window->contentItem()); - } + if (!parentItem()) + resetParentItem(); if (d->visible && d->window) d->transitionManager.transitionEnter(); diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h index 90006193..a8e6ea11 100644 --- a/src/quicktemplates2/qquickpopup_p.h +++ b/src/quicktemplates2/qquickpopup_p.h @@ -100,7 +100,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopup : public QObject, public QQml Q_PROPERTY(bool mirrored READ isMirrored NOTIFY mirroredChanged FINAL REVISION 3) Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged FINAL) Q_PROPERTY(QPalette palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged FINAL REVISION 3) - Q_PROPERTY(QQuickItem *parent READ parentItem WRITE setParentItem NOTIFY parentChanged FINAL) + Q_PROPERTY(QQuickItem *parent READ parentItem WRITE setParentItem RESET resetParentItem NOTIFY parentChanged FINAL) Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL) Q_PROPERTY(QQuickItem *contentItem READ contentItem WRITE setContentItem NOTIFY contentItemChanged FINAL) Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData FINAL) @@ -223,6 +223,7 @@ public: QQuickItem *parentItem() const; void setParentItem(QQuickItem *parent); + void resetParentItem(); QQuickItem *background() const; void setBackground(QQuickItem *background); |