forked from qt-creator/qt-creator
QmlDesigner: Avoid leaking unused view widgets
IF a widget is never shown it has no parent and has to be deleted manually. Change-Id: I5cf34e3a7706dd3472d4388a04bf12910530fe4d Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
@@ -192,6 +192,13 @@ DesignModeWidget::DesignModeWidget(QWidget *parent) :
|
||||
|
||||
DesignModeWidget::~DesignModeWidget()
|
||||
{
|
||||
m_leftSideBar.reset();
|
||||
m_rightSideBar.reset();
|
||||
|
||||
foreach (QPointer<QWidget> widget, m_viewWidgets) {
|
||||
if (widget)
|
||||
widget.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void DesignModeWidget::restoreDefaultView()
|
||||
@@ -382,7 +389,9 @@ void DesignModeWidget::setup()
|
||||
Core::SideBarItem *sideBarItem = new DesignerSideBarItem(widgetInfo.widget, widgetInfo.toolBarWidgetFactory, widgetInfo.uniqueId);
|
||||
sideBarItems.append(sideBarItem);
|
||||
rightSideBarItems.append(sideBarItem);
|
||||
|
||||
}
|
||||
m_viewWidgets.append(widgetInfo.widget);
|
||||
}
|
||||
|
||||
if (projectsExplorer) {
|
||||
|
@@ -160,6 +160,8 @@ private: // variables
|
||||
QStringList m_navigatorHistory;
|
||||
int m_navigatorHistoryCounter;
|
||||
bool m_keepNavigatorHistory;
|
||||
|
||||
QList<QPointer<QWidget> >m_viewWidgets;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
Reference in New Issue
Block a user