diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-04-27 22:04:58 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-04-27 22:13:52 +0200 |
commit | 8c47e08dfba62385f7255b88be0587485c6d2696 (patch) | |
tree | 01e61e004cdd88bd332e6368e0d82a72d1bd97ca /src/quicktemplates2/qquickapplicationwindow.cpp | |
parent | 150d8fcc7f97e4a5d56bdcf608fa22533d807677 (diff) | |
parent | 891afc345ba854414f5084b1b08eccb66eeaf54a (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: Ifb2d12d09994f3970b117ee76522c7d9c7152587
Diffstat (limited to 'src/quicktemplates2/qquickapplicationwindow.cpp')
-rw-r--r-- | src/quicktemplates2/qquickapplicationwindow.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp index 1611ebaf..401313d8 100644 --- a/src/quicktemplates2/qquickapplicationwindow.cpp +++ b/src/quicktemplates2/qquickapplicationwindow.cpp @@ -110,6 +110,11 @@ public: , activeFocusControl(nullptr) { } + static QQuickApplicationWindowPrivate *get(QQuickApplicationWindow *window) + { + return window->d_func(); + } + void relayout(); void itemGeometryChanged(QQuickItem *item, const QRectF &newRect, const QRectF &oldRect) override; @@ -263,6 +268,7 @@ QQuickApplicationWindow::~QQuickApplicationWindow() if (d->footer) QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Visibility | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight); + d_ptr.reset(); // QTBUG-52731 } /*! @@ -616,6 +622,9 @@ public: void QQuickApplicationWindowAttachedPrivate::windowChange(QQuickWindow *wnd) { Q_Q(QQuickApplicationWindowAttached); + if (window && !QQuickApplicationWindowPrivate::get(window)) + window = nullptr; // being deleted (QTBUG-52731) + QQuickApplicationWindow *newWindow = qobject_cast<QQuickApplicationWindow *>(wnd); if (window != newWindow) { QQuickApplicationWindow *oldWindow = window; |