AbstractProcessStep: Introduce defaultProcessTask()

Task-number: QTCREATORBUG-29168
Change-Id: Ic10a2edefd1a2ce1ffffd0eb051a720d9462e099
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2023-07-12 09:23:55 +02:00
parent d42e1756ef
commit 799dd9d101
2 changed files with 15 additions and 2 deletions

View File

@@ -202,6 +202,15 @@ void AbstractProcessStep::setupStreams()
d->stderrStream = std::make_unique<QTextDecoder>(QTextCodec::codecForLocale());
}
GroupItem AbstractProcessStep::defaultProcessTask()
{
const auto onSetup = [this](Process &process) {
return setupProcess(process) ? SetupResult::Continue : SetupResult::StopWithError;
};
const auto onEnd = [this](const Process &process) { handleProcessDone(process); };
return ProcessTask(onSetup, onEnd, onEnd);
}
bool AbstractProcessStep::setupProcess(Process &process)
{
const FilePath workingDir = d->m_param.effectiveWorkingDirectory();

View File

@@ -9,11 +9,14 @@
namespace Utils {
class CommandLine;
enum class ProcessResult;
class Process;
enum class ProcessResult;
}
namespace Tasking { class Group; }
namespace Tasking {
class Group;
class GroupItem;
}
namespace ProjectExplorer {
class ProcessParameters;
@@ -48,6 +51,7 @@ protected:
void setLowPriority();
void setDisplayedParameters(ProcessParameters *params);
Tasking::GroupItem defaultProcessTask();
bool setupProcess(Utils::Process &process);
void handleProcessDone(const Utils::Process &process);
void runTaskTree(const Tasking::Group &recipe);