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()
|
DesignModeWidget::~DesignModeWidget()
|
||||||
{
|
{
|
||||||
|
m_leftSideBar.reset();
|
||||||
|
m_rightSideBar.reset();
|
||||||
|
|
||||||
|
foreach (QPointer<QWidget> widget, m_viewWidgets) {
|
||||||
|
if (widget)
|
||||||
|
widget.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesignModeWidget::restoreDefaultView()
|
void DesignModeWidget::restoreDefaultView()
|
||||||
@@ -382,7 +389,9 @@ void DesignModeWidget::setup()
|
|||||||
Core::SideBarItem *sideBarItem = new DesignerSideBarItem(widgetInfo.widget, widgetInfo.toolBarWidgetFactory, widgetInfo.uniqueId);
|
Core::SideBarItem *sideBarItem = new DesignerSideBarItem(widgetInfo.widget, widgetInfo.toolBarWidgetFactory, widgetInfo.uniqueId);
|
||||||
sideBarItems.append(sideBarItem);
|
sideBarItems.append(sideBarItem);
|
||||||
rightSideBarItems.append(sideBarItem);
|
rightSideBarItems.append(sideBarItem);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
m_viewWidgets.append(widgetInfo.widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (projectsExplorer) {
|
if (projectsExplorer) {
|
||||||
|
@@ -160,6 +160,8 @@ private: // variables
|
|||||||
QStringList m_navigatorHistory;
|
QStringList m_navigatorHistory;
|
||||||
int m_navigatorHistoryCounter;
|
int m_navigatorHistoryCounter;
|
||||||
bool m_keepNavigatorHistory;
|
bool m_keepNavigatorHistory;
|
||||||
|
|
||||||
|
QList<QPointer<QWidget> >m_viewWidgets;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
Reference in New Issue
Block a user