AbstractRemoteLinuxDeployStep: Refactor tree error handling

Make it behave like AbstractProcessStep.
Move success / failure logging into the recipe.
Make starting the task tree look the same in both classes.
That's a preparation step before moving running task tree
into the base BuildStep class.

Task-number: QTCREATORBUG-29168
Change-Id: I2bf3e2476d3942a01efc3b06778410dea40eef5e
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2023-07-12 18:10:21 +02:00
parent c92f4bcbdf
commit 188795fecf
2 changed files with 34 additions and 37 deletions

View File

@@ -170,17 +170,19 @@ void AbstractProcessStep::setupOutputFormatter(OutputFormatter *formatter)
void AbstractProcessStep::doRun()
{
QTC_ASSERT(!d->m_taskTree, return);
d->m_taskTree.reset(new TaskTree({runRecipe()}));
connect(d->m_taskTree.get(), &TaskTree::progressValueChanged, this, [this](int value) {
emit progress(qRound(double(value) * 100 / std::max(d->m_taskTree->progressMaximum(), 1)), {});
});
connect(d->m_taskTree.get(), &TaskTree::done, this, [this] {
emit finished(true);
d->m_taskTree.release()->deleteLater();
emit finished(true);
});
connect(d->m_taskTree.get(), &TaskTree::errorOccurred, this, [this] {
emit finished(false);
d->m_taskTree.release()->deleteLater();
emit finished(false);
});
d->m_taskTree->start();
}
@@ -269,12 +271,12 @@ void AbstractProcessStep::setLowPriority()
void AbstractProcessStep::doCancel()
{
const QString message = Tr::tr("The build step was ended forcefully.");
if (d->m_taskTree) {
d->m_taskTree.reset();
emit addOutput(message, OutputFormat::ErrorMessage);
emit finished(false);
}
if (!d->m_taskTree)
return;
d->m_taskTree.reset();
emit addOutput(Tr::tr("The build step was ended forcefully."), OutputFormat::ErrorMessage);
emit finished(false);
}
ProcessParameters *AbstractProcessStep::processParameters()