aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-07-11 16:04:17 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-07-12 08:04:58 +0000
commitbdebb54522f82a9d18d231a183fffaadd6e3479e (patch)
tree5914430c8d53c93791525b7cf45f38062795365b /src
parentb9637d71b391c165b8e6b1177e1ca1dc81557d76 (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.cpp16
-rw-r--r--src/quicktemplates2/qquickpopup_p.h3
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);