From 2ff533b49913e7ddabfa7c8a55eb780769b37a83 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Sat, 13 Jan 2024 16:58:44 +0100 Subject: [PATCH] CppProjectUpdater: Reuse TaskTreeRunner Change-Id: I204041d44bce386b75c43b5d6686671e04bd2b30 Reviewed-by: Christian Kandeler Reviewed-by: --- src/plugins/cppeditor/cppprojectupdater.cpp | 15 ++++++--------- src/plugins/cppeditor/cppprojectupdater.h | 8 +++----- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/plugins/cppeditor/cppprojectupdater.cpp b/src/plugins/cppeditor/cppprojectupdater.cpp index 3e208a8bf63..9b9cbf5c9b3 100644 --- a/src/plugins/cppeditor/cppprojectupdater.cpp +++ b/src/plugins/cppeditor/cppprojectupdater.cpp @@ -18,13 +18,11 @@ #include using namespace ProjectExplorer; +using namespace Tasking; using namespace Utils; namespace CppEditor { -CppProjectUpdater::CppProjectUpdater() = default; -CppProjectUpdater::~CppProjectUpdater() = default; - void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo, const QList &extraCompilers) { @@ -69,7 +67,6 @@ void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo, } const auto onDone = [this, storage, compilers](DoneWith result) { - m_taskTree.release()->deleteLater(); if (result != DoneWith::Success) return; QList extraCompilers; @@ -90,15 +87,15 @@ void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo, Group(tasks), onGroupDone(onDone) }; - m_taskTree.reset(new TaskTree(root)); - auto progress = new Core::TaskProgress(m_taskTree.get()); - progress->setDisplayName(Tr::tr("Preparing C++ Code Model")); - m_taskTree->start(); + m_taskTreeRunner.start(root, [](TaskTree *taskTree) { + auto progress = new Core::TaskProgress(taskTree); + progress->setDisplayName(Tr::tr("Preparing C++ Code Model")); + }); } void CppProjectUpdater::cancel() { - m_taskTree.reset(); + m_taskTreeRunner.reset(); m_futureSynchronizer.cancelAllFutures(); } diff --git a/src/plugins/cppeditor/cppprojectupdater.h b/src/plugins/cppeditor/cppprojectupdater.h index 2a8999b69ee..0d9cf8c0357 100644 --- a/src/plugins/cppeditor/cppprojectupdater.h +++ b/src/plugins/cppeditor/cppprojectupdater.h @@ -8,10 +8,11 @@ #include #include +#include + #include namespace ProjectExplorer { class ExtraCompiler; } -namespace Tasking { class TaskTree; } namespace CppEditor { @@ -33,16 +34,13 @@ class CPPEDITOR_EXPORT CppProjectUpdater final Q_OBJECT public: - CppProjectUpdater(); - ~CppProjectUpdater() override; - void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo, const QList &extraCompilers) override; void cancel() override; private: Utils::FutureSynchronizer m_futureSynchronizer; - std::unique_ptr m_taskTree; + Tasking::TaskTreeRunner m_taskTreeRunner; }; } // namespace CppEditor