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>
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<ProjectExplorer::ExtraCompiler *> &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<ExtraCompiler *> 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();
}

View File

@@ -8,10 +8,11 @@
#include <projectexplorer/projectupdater.h>
#include <projectexplorer/rawprojectpart.h>
#include <solutions/tasking/tasktreerunner.h>
#include <utils/futuresynchronizer.h>
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<ProjectExplorer::ExtraCompiler *> &extraCompilers) override;
void cancel() override;
private:
Utils::FutureSynchronizer m_futureSynchronizer;
std::unique_ptr<Tasking::TaskTree> m_taskTree;
Tasking::TaskTreeRunner m_taskTreeRunner;
};
} // namespace CppEditor