diff options
author | Marco Bubke <marco.bubke@qt.io> | 2019-02-19 20:46:08 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2019-02-22 12:09:09 +0000 |
commit | f009dad9ef2f286248d7da8678134f587bda22d0 (patch) | |
tree | 809c289f2421a605e29138d94627b576b07764ac /src/plugins/clangpchmanager | |
parent | 8c781f7e6aa763a4caa21c5f5c5504b79634ea46 (diff) |
ClangPchManager: Show extra progress for dependency building
Task-number: QTCREATORBUG-21956
Change-Id: Id244c9ef9fc7825489daa143b21fcca78164d8c7
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/clangpchmanager')
-rw-r--r-- | src/plugins/clangpchmanager/clangpchmanagerplugin.cpp | 17 | ||||
-rw-r--r-- | src/plugins/clangpchmanager/pchmanagerclient.cpp | 11 | ||||
-rw-r--r-- | src/plugins/clangpchmanager/pchmanagerclient.h | 9 |
3 files changed, 28 insertions, 9 deletions
diff --git a/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp b/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp index 90ba8f62bc..8f7ea72242 100644 --- a/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp +++ b/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp @@ -65,12 +65,19 @@ public: Sqlite::Database database{Utils::PathString{Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}, 1000ms}; ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; - ClangPchManager::ProgressManager progressManager{ - [] (QFutureInterface<void> &promise) { - auto title = QCoreApplication::translate("ClangPchProgressManager", "Creating PCHs", "PCH stands for precompiled header"); - Core::ProgressManager::addTask(promise.future(), title, "pch creation", nullptr); + ClangPchManager::ProgressManager pchCreationProgressManager{[](QFutureInterface<void> &promise) { + auto title = QCoreApplication::translate("ClangPchProgressManager", + "Creating PCHs", + "PCH stands for precompiled header"); + Core::ProgressManager::addTask(promise.future(), title, "pch creation", nullptr); }}; - PchManagerClient pchManagerClient{progressManager}; + ClangPchManager::ProgressManager dependencyCreationProgressManager{ + [](QFutureInterface<void> &promise) { + auto title = QCoreApplication::translate("ClangPchProgressManager", + "Creating Dependencies"); + Core::ProgressManager::addTask(promise.future(), title, "dependency creation", nullptr); + }}; + PchManagerClient pchManagerClient{pchCreationProgressManager, dependencyCreationProgressManager}; PchManagerConnectionClient connectionClient{&pchManagerClient}; QtCreatorProjectUpdater<PchManagerProjectUpdater> projectUpdate{connectionClient.serverProxy(), pchManagerClient, diff --git a/src/plugins/clangpchmanager/pchmanagerclient.cpp b/src/plugins/clangpchmanager/pchmanagerclient.cpp index 56e64b2b56..4b0b5430d7 100644 --- a/src/plugins/clangpchmanager/pchmanagerclient.cpp +++ b/src/plugins/clangpchmanager/pchmanagerclient.cpp @@ -53,7 +53,16 @@ void PchManagerClient::precompiledHeadersUpdated(ClangBackEnd::PrecompiledHeader void PchManagerClient::progress(ClangBackEnd::ProgressMessage &&message) { - m_progressManager.setProgress(message.progress, message.total); + switch (message.progressType) { + case ClangBackEnd::ProgressType::PrecompiledHeader: + m_pchCreationProgressManager.setProgress(message.progress, message.total); + break; + case ClangBackEnd::ProgressType::DependencyCreation: + m_dependencyCreationProgressManager.setProgress(message.progress, message.total); + break; + default: + break; + } } void PchManagerClient::precompiledHeaderRemoved(const QString &projectPartId) diff --git a/src/plugins/clangpchmanager/pchmanagerclient.h b/src/plugins/clangpchmanager/pchmanagerclient.h index d7c0b68f71..ccbd03299a 100644 --- a/src/plugins/clangpchmanager/pchmanagerclient.h +++ b/src/plugins/clangpchmanager/pchmanagerclient.h @@ -42,8 +42,10 @@ class CLANGPCHMANAGER_EXPORT PchManagerClient final : public ClangBackEnd::PchMa { friend class PchManagerNotifierInterface; public: - PchManagerClient(ProgressManagerInterface &progressManager) - : m_progressManager(progressManager) + PchManagerClient(ProgressManagerInterface &pchCreationProgressManager, + ProgressManagerInterface &dependencyCreationProgressManager) + : m_pchCreationProgressManager(pchCreationProgressManager) + , m_dependencyCreationProgressManager(dependencyCreationProgressManager) {} void alive() override; @@ -78,7 +80,8 @@ private: ClangBackEnd::ProjectPartPchs m_projectPartPchs; std::vector<PchManagerNotifierInterface*> m_notifiers; PchManagerConnectionClient *m_connectionClient=nullptr; - ProgressManagerInterface &m_progressManager; + ProgressManagerInterface &m_pchCreationProgressManager; + ProgressManagerInterface &m_dependencyCreationProgressManager; }; } // namespace ClangPchManager |