From: Jarek Kobus Date: Mon, 13 Aug 2012 13:49:23 +0000 (+0200) Subject: Make sure the parent widget still exists. X-Git-Tag: accepted/tizen/20131212.181521~246 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aad795575646b37b5c531cb6314eaa049e90e076;p=platform%2Fupstream%2Fqttools.git 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 --- diff --git a/src/designer/src/components/taskmenu/inplace_widget_helper.cpp b/src/designer/src/components/taskmenu/inplace_widget_helper.cpp index 9be9294..a6f902c 100644 --- a/src/designer/src/components/taskmenu/inplace_widget_helper.cpp +++ b/src/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/src/designer/src/components/taskmenu/inplace_widget_helper.h b/src/designer/src/components/taskmenu/inplace_widget_helper.h index de13a23..972b5a7 100644 --- a/src/designer/src/components/taskmenu/inplace_widget_helper.h +++ b/src/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;