forked from qt-creator/qt-creator
ClangPchManager: Show extra progress for dependency building
Task-number: QTCREATORBUG-21956 Change-Id: Id244c9ef9fc7825489daa143b21fcca78164d8c7 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user