forked from qt-creator/qt-creator
AutoTest: Fix leaking of project settings
Make sure project settings will be destructed correctly. Change-Id: I633bf744eb2e0835fe89e3a9f3c2f7293c5f5275 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -149,15 +149,27 @@ AutotestPluginPrivate::AutotestPluginPrivate(AutotestPlugin *parent)
|
||||
m_frameworkManager->activateFrameworksFromSettings(q->settings());
|
||||
TestTreeModel::instance()->synchronizeTestFrameworks();
|
||||
|
||||
connect(ProjectExplorer::SessionManager::instance(),
|
||||
&ProjectExplorer::SessionManager::startupProjectChanged, this, [this] {
|
||||
m_runconfigCache.clear();
|
||||
});
|
||||
auto sessionManager = ProjectExplorer::SessionManager::instance();
|
||||
connect(sessionManager, &ProjectExplorer::SessionManager::startupProjectChanged,
|
||||
this, [this] { m_runconfigCache.clear(); });
|
||||
|
||||
connect(sessionManager, &ProjectExplorer::SessionManager::aboutToRemoveProject,
|
||||
this, [this] (ProjectExplorer::Project *project) {
|
||||
auto it = s_projectSettings.find(project);
|
||||
if (it != s_projectSettings.end()) {
|
||||
delete it.value();
|
||||
s_projectSettings.erase(it);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
AutotestPluginPrivate::~AutotestPluginPrivate()
|
||||
{
|
||||
if (!s_projectSettings.isEmpty()) {
|
||||
qDeleteAll(s_projectSettings.values());
|
||||
s_projectSettings.clear();
|
||||
}
|
||||
|
||||
delete m_navigationWidgetFactory;
|
||||
delete m_resultsPane;
|
||||
delete m_testSettingPage;
|
||||
|
||||
Reference in New Issue
Block a user