From 85fac8d4af2e7be0d4432cc05439df817e70619f Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 3 Dec 2010 13:51:54 +0100 Subject: [PATCH] QuickDesigner: Fix crash on exit Make sure that the sidebar items are deleted before the core (e.g. ICore::instance()) is deleted. Task-number: QTCREATORBUG-3269 Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designmodewidget.cpp | 11 +++++++++++ src/plugins/qmldesigner/designmodewidget.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 8128eb0f9b..4d822b66d5 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -670,6 +670,9 @@ void DesignModeWidget::setup() connect(m_leftSideBar, SIGNAL(availableItemsChanged()), SLOT(updateAvailableSidebarItemsRight())); connect(m_rightSideBar, SIGNAL(availableItemsChanged()), SLOT(updateAvailableSidebarItemsLeft())); + connect(Core::ICore::instance(), SIGNAL(coreAboutToClose()), + this, SLOT(deleteSidebarWidgets())); + m_fakeToolBar->setToolbarCreationFlags(Core::EditorToolBar::FlagsStandalone); //m_fakeToolBar->addEditor(textEditor()); ### what does this mean? m_fakeToolBar->setNavigationVisible(false); @@ -738,6 +741,14 @@ void DesignModeWidget::updateAvailableSidebarItemsLeft() m_leftSideBar->setUnavailableItemIds(m_rightSideBar->unavailableItemIds()); } +void DesignModeWidget::deleteSidebarWidgets() +{ + delete m_leftSideBar; + delete m_rightSideBar; + m_leftSideBar = 0; + m_rightSideBar = 0; +} + void DesignModeWidget::resizeEvent(QResizeEvent *event) { if (m_warningWidget) diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index ad18ece10b..d10c73b7cd 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -148,6 +148,8 @@ private slots: void updateAvailableSidebarItemsLeft(); void updateAvailableSidebarItemsRight(); + void deleteSidebarWidgets(); + protected: void resizeEvent(QResizeEvent *event); -- 2.11.0