diff options
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp b/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp index 77f3e077a2..fd7af452c7 100644 --- a/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp @@ -27,6 +27,7 @@ #include "cmaketoolsettingsaccessor.h" +#include <coreplugin/helpmanager.h> #include <coreplugin/icore.h> #include <utils/pointeralgorithm.h> @@ -105,6 +106,8 @@ bool CMakeToolManager::registerCMakeTool(std::unique_ptr<CMakeTool> &&tool) ensureDefaultCMakeToolIsValid(); + updateDocumentation(); + return true; } @@ -112,9 +115,10 @@ void CMakeToolManager::deregisterCMakeTool(const Id &id) { auto toRemove = Utils::take(d->m_cmakeTools, Utils::equal(&CMakeTool::id, id)); if (toRemove.has_value()) { - ensureDefaultCMakeToolIsValid(); + updateDocumentation(); + emit m_instance->cmakeRemoved(id); } } @@ -152,9 +156,22 @@ void CMakeToolManager::restoreCMakeTools() d->m_cmakeTools = std::move(tools.cmakeTools); setDefaultCMakeTool(tools.defaultToolId); + updateDocumentation(); + emit m_instance->cmakeToolsLoaded(); } +void CMakeToolManager::updateDocumentation() +{ + const QList<CMakeTool *> tools = cmakeTools(); + QStringList docs; + for (const auto tool : tools) { + if (!tool->qchFilePath().isEmpty()) + docs.append(tool->qchFilePath().toString()); + } + Core::HelpManager::registerDocumentation(docs); +} + void CMakeToolManager::notifyAboutUpdate(CMakeTool *tool) { if (!tool || !Utils::contains(d->m_cmakeTools, tool)) |