forked from qt-creator/qt-creator
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:
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user