From bfb5a16d9a5dccde8d47296a506513b0a002c6fc Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 20 Feb 2025 14:34:35 +0100 Subject: [PATCH] QNX: Dismantle Slog2InfoRunner, employ RecipeRunner instead Task-number: QTCREATORBUG-29168 Change-Id: I35d25dd05cbb94a00ee81035f236eff4a4edf96d Reviewed-by: hjk --- src/plugins/qnx/qnxanalyzesupport.cpp | 4 +++- src/plugins/qnx/qnxdebugsupport.cpp | 3 ++- src/plugins/qnx/slog2inforunner.cpp | 31 ++++----------------------- src/plugins/qnx/slog2inforunner.h | 18 +++------------- 4 files changed, 12 insertions(+), 44 deletions(-) diff --git a/src/plugins/qnx/qnxanalyzesupport.cpp b/src/plugins/qnx/qnxanalyzesupport.cpp index eb0c9848bf3..46a78687fbb 100644 --- a/src/plugins/qnx/qnxanalyzesupport.cpp +++ b/src/plugins/qnx/qnxanalyzesupport.cpp @@ -8,6 +8,7 @@ #include "slog2inforunner.h" #include +#include #include using namespace ProjectExplorer; @@ -27,7 +28,8 @@ public: runControl->requestQmlChannel(); - auto slog2InfoRunner = new Slog2InfoRunner(runControl); + auto slog2InfoRunner = new RecipeRunner(runControl); + slog2InfoRunner->setRecipe(slog2InfoRecipe(slog2InfoRunner)); worker->addStartDependency(slog2InfoRunner); auto profiler = runControl->createWorker(ProjectExplorer::Constants::QML_PROFILER_RUNNER); diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp index f61fb097776..80d01b7acf2 100644 --- a/src/plugins/qnx/qnxdebugsupport.cpp +++ b/src/plugins/qnx/qnxdebugsupport.cpp @@ -196,7 +196,8 @@ public: }); - auto slog2InfoRunner = new Slog2InfoRunner(runControl); + auto slog2InfoRunner = new RecipeRunner(runControl); + slog2InfoRunner->setRecipe(slog2InfoRecipe(slog2InfoRunner)); debuggeeRunner->addStartDependency(slog2InfoRunner); debugger->addStartDependency(debuggeeRunner); diff --git a/src/plugins/qnx/slog2inforunner.cpp b/src/plugins/qnx/slog2inforunner.cpp index 371c0a217c4..b53e8779c91 100644 --- a/src/plugins/qnx/slog2inforunner.cpp +++ b/src/plugins/qnx/slog2inforunner.cpp @@ -7,6 +7,9 @@ #include #include +#include + +#include #include #include @@ -33,7 +36,7 @@ struct SlogData void processLogInput(const QString &input); }; -static Group recipe(RunWorker *worker) +Group slog2InfoRecipe(RunWorker *worker) { RunControl *runControl = worker->runControl(); QString applicationId = runControl->aspectData()->executable.fileName(); @@ -90,13 +93,6 @@ static Group recipe(RunWorker *worker) }; } -Slog2InfoRunner::Slog2InfoRunner(RunControl *runControl) - : RunWorker(runControl) - , m_recipe(recipe(this)) -{ - setId("Slog2InfoRunner"); -} - void SlogData::processRemainingLogData() { if (!m_remainingData.isEmpty()) @@ -154,23 +150,4 @@ void SlogData::processLogLine(const QString &line) m_worker->appendMessage(match.captured(6).trimmed() + '\n', StdOutFormat); } -void Slog2InfoRunner::start() -{ - QTC_CHECK(!m_taskTreeRunner.isRunning()); - - m_taskTreeRunner.start(m_recipe, {}, [this](DoneWith result) { - if (result == DoneWith::Success) - reportStopped(); - else - reportFailure(); - }); - reportStarted(); -} - -void Slog2InfoRunner::stop() -{ - m_taskTreeRunner.cancel(); - reportStopped(); -} - } // Qnx::Internal diff --git a/src/plugins/qnx/slog2inforunner.h b/src/plugins/qnx/slog2inforunner.h index 051498474fa..68d1ae99308 100644 --- a/src/plugins/qnx/slog2inforunner.h +++ b/src/plugins/qnx/slog2inforunner.h @@ -3,23 +3,11 @@ #pragma once -#include - -#include +namespace ProjectExplorer { class RunWorker; } +namespace Tasking { class Group; } namespace Qnx::Internal { -class Slog2InfoRunner : public ProjectExplorer::RunWorker -{ -public: - explicit Slog2InfoRunner(ProjectExplorer::RunControl *runControl); - - void start() override; - void stop() override; - -private: - Tasking::TaskTreeRunner m_taskTreeRunner; - Tasking::Group m_recipe; -}; +Tasking::Group slog2InfoRecipe(ProjectExplorer::RunWorker *worker); } // Qnx::Internal