diff options
author | Jarek Kobus <jaroslaw.kobus@nokia.com> | 2012-08-13 15:49:23 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-22 02:49:25 +0200 |
commit | aad795575646b37b5c531cb6314eaa049e90e076 (patch) | |
tree | e3e4b37c57a6963dd3dc912c918f0dd8afdf8ff0 | |
parent | 83fa4051d623c3c03a0e1b1cadfc63ce735c15e2 (diff) |
Make sure the parent widget still exists.v5.0.0-beta1
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 <Friedemann.Kleint@nokia.com>
-rw-r--r-- | src/designer/src/components/taskmenu/inplace_widget_helper.cpp | 3 | ||||
-rw-r--r-- | src/designer/src/components/taskmenu/inplace_widget_helper.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/designer/src/components/taskmenu/inplace_widget_helper.cpp b/src/designer/src/components/taskmenu/inplace_widget_helper.cpp index 9be929483..a6f902cc6 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 de13a239e..972b5a7d6 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 <QtCore/QObject> #include <QtCore/QPoint> #include <QtCore/QSize> +#include <QtCore/QPointer> #include <qglobal.h> QT_BEGIN_NAMESPACE @@ -75,7 +76,7 @@ namespace qdesigner_internal { Qt::Alignment alignment() const; private: QWidget *m_editorWidget; - QWidget *m_parentWidget; + QPointer<QWidget> m_parentWidget; const bool m_noChildEvent; QPoint m_posOffset; QSize m_sizeOffset; |