summaryrefslogtreecommitdiff
path: root/src/plugins/clangpchmanager
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2019-02-12 19:49:38 +0100
committerMarco Bubke <marco.bubke@qt.io>2019-02-18 14:29:47 +0000
commitfbadbd3b0d40d19bc0b8a7303cb0dc0d1d031eb0 (patch)
treeb3ce61bd7f757c4574cab79f28048f45cf721f8f /src/plugins/clangpchmanager
parent2887f5e5a9ced381e684b9b40a9a995c46664cb9 (diff)
downloadqt-creator-fbadbd3b0d40d19bc0b8a7303cb0dc0d1d031eb0.tar.gz
Observe the cration of extra compiler
We link into the extra compiler factory and notify the PchManager for every extra compiler creation. It enables to monitor if all extra compiler finished. Change-Id: If8da386c88909abd2e0e651e4336865c9dc5bf34 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/clangpchmanager')
-rw-r--r--src/plugins/clangpchmanager/qtcreatorprojectupdater.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/plugins/clangpchmanager/qtcreatorprojectupdater.h b/src/plugins/clangpchmanager/qtcreatorprojectupdater.h
index fa008f14ae..4d66a2f8c3 100644
--- a/src/plugins/clangpchmanager/qtcreatorprojectupdater.h
+++ b/src/plugins/clangpchmanager/qtcreatorprojectupdater.h
@@ -28,6 +28,7 @@
#include "pchmanagerprojectupdater.h"
#include <cpptools/cppmodelmanager.h>
+#include <projectexplorer/extracompiler.h>
#include <filecontainerv2.h>
@@ -49,8 +50,9 @@ CLANGPCHMANAGER_EXPORT std::vector<ClangBackEnd::V2::FileContainer> createGenera
CLANGPCHMANAGER_EXPORT std::vector<CppTools::ProjectPart*> createProjectParts(ProjectExplorer::Project *project);
}
-template <typename ProjectUpdaterType>
-class QtCreatorProjectUpdater : public ProjectUpdaterType
+template<typename ProjectUpdaterType>
+class QtCreatorProjectUpdater : public ProjectUpdaterType,
+ public ProjectExplorer::ExtraCompilerFactoryObserver
{
public:
template <typename ClientType>
@@ -90,6 +92,15 @@ public:
ProjectUpdaterType::removeGeneratedFiles({ClangBackEnd::FilePath{filePath}});
}
+protected:
+ void newExtraCompiler(const ProjectExplorer::Project *,
+ const Utils::FileName &,
+ const Utils::FileNameList &targets) override
+ {
+ for (const Utils::FileName &target : targets)
+ abstractEditorUpdated(target.toString(), {});
+ }
+
private:
void connectToCppModelManager()
{