diff options
Diffstat (limited to 'src/plugins/autotest/testprojectsettings.cpp')
-rw-r--r-- | src/plugins/autotest/testprojectsettings.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/plugins/autotest/testprojectsettings.cpp b/src/plugins/autotest/testprojectsettings.cpp index 47f672ea0f..2726bf9566 100644 --- a/src/plugins/autotest/testprojectsettings.cpp +++ b/src/plugins/autotest/testprojectsettings.cpp @@ -36,6 +36,8 @@ namespace Internal { static const char SK_ACTIVE_FRAMEWORKS[] = "AutoTest.ActiveFrameworks"; static const char SK_RUN_AFTER_BUILD[] = "AutoTest.RunAfterBuild"; +static Q_LOGGING_CATEGORY(LOG, "qtc.autotest.frameworkmanager", QtWarningMsg) + TestProjectSettings::TestProjectSettings(ProjectExplorer::Project *project) : m_project(project) { @@ -58,11 +60,12 @@ void TestProjectSettings::setUseGlobalSettings(bool useGlobal) m_useGlobalSettings = useGlobal; } -void TestProjectSettings::activateFramework(const Core::Id &id, bool activate) +void TestProjectSettings::activateFramework(const Utils::Id &id, bool activate) { - if (m_activeTestFrameworks.value(id) != activate) { - m_activeTestFrameworks[id] = activate; - } + ITestFramework *framework = TestFrameworkManager::frameworkForId(id); + m_activeTestFrameworks[framework] = activate; + if (!activate) + framework->resetRootNode(); } void TestProjectSettings::load() @@ -70,21 +73,21 @@ void TestProjectSettings::load() const QVariant useGlobal = m_project->namedSettings(Constants::SK_USE_GLOBAL); m_useGlobalSettings = useGlobal.isValid() ? useGlobal.toBool() : true; - TestFrameworkManager *frameworkManager = TestFrameworkManager::instance(); - const QList<Core::Id> registered = frameworkManager->sortedRegisteredFrameworkIds(); + const TestFrameworks registered = TestFrameworkManager::registeredFrameworks(); + qCDebug(LOG) << "Registered frameworks sorted by priority" << registered; const QVariant activeFrameworks = m_project->namedSettings(SK_ACTIVE_FRAMEWORKS); m_activeTestFrameworks.clear(); if (activeFrameworks.isValid()) { const QMap<QString, QVariant> frameworksMap = activeFrameworks.toMap(); - for (const Core::Id &id : registered) { - const QString idStr = id.toString(); - bool active = frameworksMap.value(idStr, frameworkManager->isActive(id)).toBool(); - m_activeTestFrameworks.insert(id, active); + for (ITestFramework *framework : registered) { + const Utils::Id id = framework->id(); + bool active = frameworksMap.value(id.toString(), framework->active()).toBool(); + m_activeTestFrameworks.insert(framework, active); } } else { - for (const Core::Id &id : registered) - m_activeTestFrameworks.insert(id, frameworkManager->isActive(id)); + for (ITestFramework *framework : registered) + m_activeTestFrameworks.insert(framework, framework->active()); } const QVariant runAfterBuild = m_project->namedSettings(SK_RUN_AFTER_BUILD); @@ -98,7 +101,7 @@ void TestProjectSettings::save() QVariantMap activeFrameworks; auto end = m_activeTestFrameworks.cend(); for (auto it = m_activeTestFrameworks.cbegin(); it != end; ++it) - activeFrameworks.insert(it.key().toString(), it.value()); + activeFrameworks.insert(it.key()->id().toString(), it.value()); m_project->setNamedSettings(SK_ACTIVE_FRAMEWORKS, activeFrameworks); m_project->setNamedSettings(SK_RUN_AFTER_BUILD, int(m_runAfterBuild)); } |