From f009dad9ef2f286248d7da8678134f587bda22d0 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 19 Feb 2019 20:46:08 +0100 Subject: ClangPchManager: Show extra progress for dependency building Task-number: QTCREATORBUG-21956 Change-Id: Id244c9ef9fc7825489daa143b21fcca78164d8c7 Reviewed-by: Ivan Donchevskii --- src/plugins/clangpchmanager/clangpchmanagerplugin.cpp | 17 ++++++++++++----- src/plugins/clangpchmanager/pchmanagerclient.cpp | 11 ++++++++++- src/plugins/clangpchmanager/pchmanagerclient.h | 9 ++++++--- 3 files changed, 28 insertions(+), 9 deletions(-) (limited to 'src/plugins/clangpchmanager') 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 databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; - ClangPchManager::ProgressManager progressManager{ - [] (QFutureInterface &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 &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 &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 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 m_notifiers; PchManagerConnectionClient *m_connectionClient=nullptr; - ProgressManagerInterface &m_progressManager; + ProgressManagerInterface &m_pchCreationProgressManager; + ProgressManagerInterface &m_dependencyCreationProgressManager; }; } // namespace ClangPchManager -- cgit v1.2.3