summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@nokia.com>2012-08-13 15:49:23 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-22 02:49:25 +0200
commitaad795575646b37b5c531cb6314eaa049e90e076 (patch)
treee3e4b37c57a6963dd3dc912c918f0dd8afdf8ff0
parent83fa4051d623c3c03a0e1b1cadfc63ce735c15e2 (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.cpp3
-rw-r--r--src/designer/src/components/taskmenu/inplace_widget_helper.h3
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;