From 72da1109966690524aebf31d37dc4ff517a03adc Mon Sep 17 00:00:00 2001 From: Huzaifa Faruqui Date: Tue, 6 Feb 2018 22:32:26 +0530 Subject: [PATCH] Fix copyblocks exit status check --- src/jobs/job.cpp | 6 +++++- src/util/externalcommand.cpp | 6 +++--- src/util/externalcommandhelper.cpp | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/jobs/job.cpp b/src/jobs/job.cpp index e1b913a..453521b 100644 --- a/src/jobs/job.cpp +++ b/src/jobs/job.cpp @@ -45,7 +45,11 @@ bool Job::copyBlocks(Report& report, CopyTarget& target, CopySource& source) ExternalCommand copyCmd(source, target, QProcess::SeparateChannels); connect(©Cmd, &ExternalCommand::progress, this, &Job::progress, Qt::QueuedConnection); connect(©Cmd, &ExternalCommand::reportSignal, this, &Job::updateReport, Qt::QueuedConnection); - return copyCmd.startCopyBlocks(); + if (copyCmd.startCopyBlocks() && copyCmd.exitCode() == 0) { + return true; + } + + return false; } bool Job::rollbackCopyBlocks(Report& report, CopyTarget& origTarget, CopySource& origSource) diff --git a/src/util/externalcommand.cpp b/src/util/externalcommand.cpp index 4d8f66a..8dfb445 100644 --- a/src/util/externalcommand.cpp +++ b/src/util/externalcommand.cpp @@ -114,11 +114,11 @@ bool ExternalCommand::copyBlocks() return false; } - m_Output = job->data()[QStringLiteral("output")].toByteArray(); - setExitCode(job->data()[QStringLiteral("exitCode")].toInt()); + rval = job->data()[QStringLiteral("success")].toInt(); + setExitCode(!rval); emit finished(); - return true; + return rval; } /** Creates a new ExternalCommand instance without Report. diff --git a/src/util/externalcommandhelper.cpp b/src/util/externalcommandhelper.cpp index 3694e5b..00d4e0e 100644 --- a/src/util/externalcommandhelper.cpp +++ b/src/util/externalcommandhelper.cpp @@ -166,6 +166,8 @@ ActionReply ExternalCommandHelper::copyblockshelper(const QVariantMap& args) report[QStringLiteral("report")] = xi18ncp("@info:progress argument 2 is a string such as 7 bytes (localized accordingly)", "Copying 1 block (%2) finished.", "Copying %1 blocks (%2) finished.", blocksCopied, i18np("1 byte", "%1 bytes", bytesWritten)); HelperSupport::progressStep(report); + reply.addData(QStringLiteral("success"), rval); + return reply; }