From ff2dbe609ef4482d66d1ecd135b4f53f6aff7e60 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 14 Apr 2014 17:02:42 +0200 Subject: Fix crash when deleting top level windows embedded into QGraphicsProxyWidget. Clear proxyWidget pointer in slot QGraphicsProxyWidgetPrivate::_q_removeWidgetSlot(). Task-number: QTBUG-29684 Task-number: QTBUG-33213 Change-Id: Ibdbd52aa810ca908e3d98daa00954345e7a93a48 Reviewed-by: Andreas Aardal Hanssen --- src/widgets/graphicsview/qgraphicsproxywidget.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/widgets/graphicsview/qgraphicsproxywidget.cpp') diff --git a/src/widgets/graphicsview/qgraphicsproxywidget.cpp b/src/widgets/graphicsview/qgraphicsproxywidget.cpp index 68944817f6..f5db85b698 100644 --- a/src/widgets/graphicsview/qgraphicsproxywidget.cpp +++ b/src/widgets/graphicsview/qgraphicsproxywidget.cpp @@ -379,6 +379,10 @@ QWidget *QGraphicsProxyWidgetPrivate::findFocusChild(QWidget *child, bool next) void QGraphicsProxyWidgetPrivate::_q_removeWidgetSlot() { Q_Q(QGraphicsProxyWidget); + if (!widget.isNull()) { + if (QWExtra *extra = widget->d_func()->extra) + extra->proxyWidget = 0; + } widget = 0; delete q; } -- cgit v1.2.3