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:
Christian Stenger
2020-03-05 13:31:31 +01:00
parent 74f04c17d1
commit afffbe01aa

View File

@@ -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;