aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangpchmanager
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2019-02-19 20:46:08 +0100
committerMarco Bubke <marco.bubke@qt.io>2019-02-22 12:09:09 +0000
commitf009dad9ef2f286248d7da8678134f587bda22d0 (patch)
tree809c289f2421a605e29138d94627b576b07764ac /src/plugins/clangpchmanager
parent8c781f7e6aa763a4caa21c5f5c5504b79634ea46 (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.cpp17
-rw-r--r--src/plugins/clangpchmanager/pchmanagerclient.cpp11
-rw-r--r--src/plugins/clangpchmanager/pchmanagerclient.h9
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