diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 8128eb0f9bc..4d822b66d52 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 ad18ece10b1..d10c73b7cdc 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);