diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-21 15:33:11 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-21 19:54:25 +0000 |
commit | 40aa7c39671400d96cf5f87fa737264912585ca0 (patch) | |
tree | df2c4f2f7860af2966809c562d3320e7b4151248 /src | |
parent | 9d590d6313ba579a2c2112e4b314cacd05d09a50 (diff) |
Popup: make ApplicationWindow attached properties available
Change-Id: Idde9fb49c222abc1ceabd15256695fd1961a9f76
Task-number: QTBUG-51991
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/templates/qquickapplicationwindow.cpp | 6 | ||||
-rw-r--r-- | src/templates/qquickpopup.cpp | 6 | ||||
-rw-r--r-- | src/templates/qquickpopup_p.h | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/templates/qquickapplicationwindow.cpp b/src/templates/qquickapplicationwindow.cpp index 0281e3c3..1cc21d74 100644 --- a/src/templates/qquickapplicationwindow.cpp +++ b/src/templates/qquickapplicationwindow.cpp @@ -617,10 +617,12 @@ QQuickApplicationWindowAttached::QQuickApplicationWindowAttached(QObject *parent : QObject(*(new QQuickApplicationWindowAttachedPrivate), parent) { Q_D(QQuickApplicationWindowAttached); - QQuickItem *item = qobject_cast<QQuickItem *>(parent); - if (item) { + if (QQuickItem *item = qobject_cast<QQuickItem *>(parent)) { d->windowChange(item->window()); QObjectPrivate::connect(item, &QQuickItem::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange); + } else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent)) { + d->windowChange(popup->window()); + QObjectPrivate::connect(popup, &QQuickPopup::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange); } } diff --git a/src/templates/qquickpopup.cpp b/src/templates/qquickpopup.cpp index ab36e4cc..f0866bdd 100644 --- a/src/templates/qquickpopup.cpp +++ b/src/templates/qquickpopup.cpp @@ -1285,6 +1285,8 @@ void QQuickPopup::setParentItem(QQuickItem *parent) if (d->parentItem == parent) return; + QQuickWindow *oldWindow = window(); + d->parentItem = parent; if (d->positioner.parentItem()) d->positioner.setParentItem(parent); @@ -1295,6 +1297,10 @@ void QQuickPopup::setParentItem(QQuickItem *parent) p->updateLocale(window->locale(), false); // explicit=false } emit parentChanged(); + + QQuickWindow *newWindow = window(); + if (oldWindow != newWindow) + emit windowChanged(newWindow); } /*! diff --git a/src/templates/qquickpopup_p.h b/src/templates/qquickpopup_p.h index 33f44210..22f9e8a9 100644 --- a/src/templates/qquickpopup_p.h +++ b/src/templates/qquickpopup_p.h @@ -312,6 +312,7 @@ Q_SIGNALS: void closePolicyChanged(); void enterChanged(); void exitChanged(); + void windowChanged(QQuickWindow *window); void aboutToShow(); void aboutToHide(); |