aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickapplicationwindow.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-04-27 22:04:58 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-04-27 22:13:52 +0200
commit8c47e08dfba62385f7255b88be0587485c6d2696 (patch)
tree01e61e004cdd88bd332e6368e0d82a72d1bd97ca /src/quicktemplates2/qquickapplicationwindow.cpp
parent150d8fcc7f97e4a5d56bdcf608fa22533d807677 (diff)
parent891afc345ba854414f5084b1b08eccb66eeaf54a (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Diffstat (limited to 'src/quicktemplates2/qquickapplicationwindow.cpp')
-rw-r--r--src/quicktemplates2/qquickapplicationwindow.cpp9
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;