From 4b6d972d805c9e0c2c46e82871229751280d43ee Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 13 Aug 2012 15:49:23 +0200 Subject: Make sure the parent widget still exists. It may happen that InPlaceWidgetHelper's destructor is called after parent widget destructor. Now inside InPlaceWidgetHelper's destructor we check if parent widget still exists. Task-number: QTCREATORBUG-7684 Change-Id: I4c9ecbfae7323fd95345ccabc113218a7011ebe8 Reviewed-by: Friedemann Kleint (cherry picked from commit aad795575646b37b5c531cb6314eaa049e90e076) --- tools/designer/src/components/taskmenu/inplace_widget_helper.cpp | 3 ++- tools/designer/src/components/taskmenu/inplace_widget_helper.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/designer/src/components/taskmenu/inplace_widget_helper.cpp b/tools/designer/src/components/taskmenu/inplace_widget_helper.cpp index fc34b98..d71d265 100644 --- a/tools/designer/src/components/taskmenu/inplace_widget_helper.cpp +++ b/tools/designer/src/components/taskmenu/inplace_widget_helper.cpp @@ -65,7 +65,8 @@ namespace qdesigner_internal { InPlaceWidgetHelper::~InPlaceWidgetHelper() { - m_parentWidget->setAttribute(Qt::WA_NoChildEventsForParent, m_noChildEvent); + if (m_parentWidget) + m_parentWidget->setAttribute(Qt::WA_NoChildEventsForParent, m_noChildEvent); } Qt::Alignment InPlaceWidgetHelper::alignment() const { diff --git a/tools/designer/src/components/taskmenu/inplace_widget_helper.h b/tools/designer/src/components/taskmenu/inplace_widget_helper.h index de13a23..972b5a7 100644 --- a/tools/designer/src/components/taskmenu/inplace_widget_helper.h +++ b/tools/designer/src/components/taskmenu/inplace_widget_helper.h @@ -46,6 +46,7 @@ #include #include #include +#include #include QT_BEGIN_NAMESPACE @@ -75,7 +76,7 @@ namespace qdesigner_internal { Qt::Alignment alignment() const; private: QWidget *m_editorWidget; - QWidget *m_parentWidget; + QPointer m_parentWidget; const bool m_noChildEvent; QPoint m_posOffset; QSize m_sizeOffset; -- cgit v0.12