CppProjectUpdater: Reuse TaskTreeRunner

Change-Id: I204041d44bce386b75c43b5d6686671e04bd2b30
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2024-01-13 16:58:44 +01:00
parent b34a8130bb
commit 2ff533b499
2 changed files with 9 additions and 14 deletions

View File

@@ -18,13 +18,11 @@
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace Tasking;
using namespace Utils; using namespace Utils;
namespace CppEditor { namespace CppEditor {
CppProjectUpdater::CppProjectUpdater() = default;
CppProjectUpdater::~CppProjectUpdater() = default;
void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo, void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo,
const QList<ProjectExplorer::ExtraCompiler *> &extraCompilers) const QList<ProjectExplorer::ExtraCompiler *> &extraCompilers)
{ {
@@ -69,7 +67,6 @@ void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo,
} }
const auto onDone = [this, storage, compilers](DoneWith result) { const auto onDone = [this, storage, compilers](DoneWith result) {
m_taskTree.release()->deleteLater();
if (result != DoneWith::Success) if (result != DoneWith::Success)
return; return;
QList<ExtraCompiler *> extraCompilers; QList<ExtraCompiler *> extraCompilers;
@@ -90,15 +87,15 @@ void CppProjectUpdater::update(const ProjectUpdateInfo &projectUpdateInfo,
Group(tasks), Group(tasks),
onGroupDone(onDone) onGroupDone(onDone)
}; };
m_taskTree.reset(new TaskTree(root)); m_taskTreeRunner.start(root, [](TaskTree *taskTree) {
auto progress = new Core::TaskProgress(m_taskTree.get()); auto progress = new Core::TaskProgress(taskTree);
progress->setDisplayName(Tr::tr("Preparing C++ Code Model")); progress->setDisplayName(Tr::tr("Preparing C++ Code Model"));
m_taskTree->start(); });
} }
void CppProjectUpdater::cancel() void CppProjectUpdater::cancel()
{ {
m_taskTree.reset(); m_taskTreeRunner.reset();
m_futureSynchronizer.cancelAllFutures(); m_futureSynchronizer.cancelAllFutures();
} }

View File

@@ -8,10 +8,11 @@
#include <projectexplorer/projectupdater.h> #include <projectexplorer/projectupdater.h>
#include <projectexplorer/rawprojectpart.h> #include <projectexplorer/rawprojectpart.h>
#include <solutions/tasking/tasktreerunner.h>
#include <utils/futuresynchronizer.h> #include <utils/futuresynchronizer.h>
namespace ProjectExplorer { class ExtraCompiler; } namespace ProjectExplorer { class ExtraCompiler; }
namespace Tasking { class TaskTree; }
namespace CppEditor { namespace CppEditor {
@@ -33,16 +34,13 @@ class CPPEDITOR_EXPORT CppProjectUpdater final
Q_OBJECT Q_OBJECT
public: public:
CppProjectUpdater();
~CppProjectUpdater() override;
void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo, void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo,
const QList<ProjectExplorer::ExtraCompiler *> &extraCompilers) override; const QList<ProjectExplorer::ExtraCompiler *> &extraCompilers) override;
void cancel() override; void cancel() override;
private: private:
Utils::FutureSynchronizer m_futureSynchronizer; Utils::FutureSynchronizer m_futureSynchronizer;
std::unique_ptr<Tasking::TaskTree> m_taskTree; Tasking::TaskTreeRunner m_taskTreeRunner;
}; };
} // namespace CppEditor } // namespace CppEditor