diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index b53b181898e..3a184487a19 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -578,12 +578,9 @@ bool AndroidBuildApkStep::init() processParameters()->setCommandLine({command, arguments}); // Generate arguments with keystore password concealed - ProjectExplorer::ProcessParameters pp2; - setupProcessParameters(&pp2); - pp2.setCommandLine({command, argumentsPasswordConcealed}); - m_command = pp2.effectiveCommand(); - m_argumentsPasswordConcealed = pp2.prettyArguments(); - + setupProcessParameters(&m_concealedParams); + m_concealedParams.setCommandLine({command, argumentsPasswordConcealed}); + setDisplayedParameters(&m_concealedParams); return true; } @@ -836,13 +833,6 @@ void AndroidBuildApkStep::reportWarningOrError(const QString &message, Task::Tas TaskHub::addTask(BuildSystemTask(type, message)); } -void AndroidBuildApkStep::processStarted() -{ - emit addOutput(Tr::tr("Starting: \"%1\" %2") - .arg(m_command.toUserOutput(), m_argumentsPasswordConcealed), - BuildStep::OutputFormat::NormalMessage); -} - bool AndroidBuildApkStep::fromMap(const QVariantMap &map) { m_keystorePath = FilePath::fromVariant(map.value(KeystoreLocationKey)); diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h index 1408afb8aae..5f8ee17c4b4 100644 --- a/src/plugins/android/androidbuildapkstep.h +++ b/src/plugins/android/androidbuildapkstep.h @@ -7,6 +7,7 @@ #include "android_global.h" #include +#include QT_BEGIN_NAMESPACE class QAbstractItemModel; @@ -61,7 +62,6 @@ private: bool init() override; void setupOutputFormatter(Utils::OutputFormatter *formatter) override; QWidget *createConfigWidget() override; - void processStarted() override; void processFinished(bool success) override; bool verifyKeystorePassword(); bool verifyCertificatePassword(); @@ -84,8 +84,7 @@ private: QString m_certificatePasswd; Utils::FilePath m_packagePath; - Utils::FilePath m_command; - QString m_argumentsPasswordConcealed; + ProjectExplorer::ProcessParameters m_concealedParams; bool m_skipBuilding = false; Utils::FilePath m_inputFile; }; diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp index 3e835e3f521..f47bfcab0c6 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.cpp +++ b/src/plugins/projectexplorer/abstractprocessstep.cpp @@ -76,6 +76,7 @@ public: AbstractProcessStep *q; std::unique_ptr m_process; ProcessParameters m_param; + ProcessParameters *m_displayedParams = &m_param; std::function m_commandLineProvider; std::function m_workingDirectoryProvider; std::function m_environmentModifier; @@ -100,7 +101,7 @@ AbstractProcessStep::~AbstractProcessStep() void AbstractProcessStep::emitFaultyConfigurationMessage() { emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), - BuildStep::OutputFormat::NormalMessage); + OutputFormat::NormalMessage); } bool AbstractProcessStep::ignoreReturnValue() const @@ -172,7 +173,7 @@ void AbstractProcessStep::doRun() if (!wd.exists()) { if (!wd.createDir()) { emit addOutput(tr("Could not create directory \"%1\"").arg(wd.toUserOutput()), - BuildStep::OutputFormat::ErrorMessage); + OutputFormat::ErrorMessage); finish(false); return; } @@ -209,8 +210,12 @@ void AbstractProcessStep::doRun() connect(d->m_process.get(), &QtcProcess::readyReadStandardError, this, [this] { stdError(d->stderrStream->toUnicode(d->m_process->readAllStandardError())); }); - connect(d->m_process.get(), &QtcProcess::started, - this, &AbstractProcessStep::processStarted); + connect(d->m_process.get(), &QtcProcess::started, this, [this] { + ProcessParameters *params = displayedParameters(); + emit addOutput(tr("Starting: \"%1\" %2") + .arg(params->effectiveCommand().toUserOutput(), params->prettyArguments()), + OutputFormat::NormalMessage); + }); connect(d->m_process.get(), &QtcProcess::done, this, &AbstractProcessStep::handleProcessDone); @@ -258,19 +263,29 @@ bool AbstractProcessStep::setupProcessParameters(ProcessParameters *params) cons return true; } +ProcessParameters *AbstractProcessStep::displayedParameters() const +{ + return d->m_displayedParams; +} + +void AbstractProcessStep::setDisplayedParameters(ProcessParameters *params) +{ + d->m_displayedParams = params; +} + void AbstractProcessStep::Private::cleanUp(int exitCode, QProcess::ExitStatus status) { - const QString command = m_param.effectiveCommand().toUserOutput(); + const QString command = q->displayedParameters()->effectiveCommand().toUserOutput(); if (status == QProcess::NormalExit && exitCode == 0) { emit q->addOutput(tr("The process \"%1\" exited normally.").arg(command), - BuildStep::OutputFormat::NormalMessage); + OutputFormat::NormalMessage); } else if (status == QProcess::NormalExit) { emit q->addOutput(tr("The process \"%1\" exited with code %2.") .arg(command, QString::number(exitCode)), - BuildStep::OutputFormat::ErrorMessage); + OutputFormat::ErrorMessage); } else { emit q->addOutput(tr("The process \"%1\" crashed.").arg(command), - BuildStep::OutputFormat::ErrorMessage); + OutputFormat::ErrorMessage); } const bool success = exitCode == 0 && status == QProcess::NormalExit @@ -281,21 +296,6 @@ void AbstractProcessStep::Private::cleanUp(int exitCode, QProcess::ExitStatus st q->finish(success || m_ignoreReturnValue); } -/*! - Called after the process is started. - - The default implementation adds a process-started message to the output - message. -*/ - -void AbstractProcessStep::processStarted() -{ - emit addOutput(tr("Starting: \"%1\" %2") - .arg(d->m_param.effectiveCommand().toUserOutput(), - d->m_param.prettyArguments()), - BuildStep::OutputFormat::NormalMessage); -} - /*! Called after the process is finished. @@ -315,9 +315,9 @@ void AbstractProcessStep::processFinished(bool success) void AbstractProcessStep::processStartupFailed() { + ProcessParameters *params = displayedParameters(); emit addOutput(tr("Could not start process \"%1\" %2.") - .arg(d->m_param.effectiveCommand().toUserOutput(), - d->m_param.prettyArguments()), + .arg(params->effectiveCommand().toUserOutput(), params->prettyArguments()), OutputFormat::ErrorMessage); QString err = d->m_process ? d->m_process->errorString() : QString(); @@ -334,7 +334,7 @@ void AbstractProcessStep::processStartupFailed() void AbstractProcessStep::stdOutput(const QString &output) { - emit addOutput(output, BuildStep::OutputFormat::Stdout, BuildStep::DontAppendNewline); + emit addOutput(output, OutputFormat::Stdout, DontAppendNewline); } /*! @@ -345,7 +345,7 @@ void AbstractProcessStep::stdOutput(const QString &output) void AbstractProcessStep::stdError(const QString &output) { - emit addOutput(output, BuildStep::OutputFormat::Stderr, BuildStep::DontAppendNewline); + emit addOutput(output, OutputFormat::Stderr, DontAppendNewline); } void AbstractProcessStep::finish(bool success) diff --git a/src/plugins/projectexplorer/abstractprocessstep.h b/src/plugins/projectexplorer/abstractprocessstep.h index addd68cf570..e815f1d0c5a 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.h +++ b/src/plugins/projectexplorer/abstractprocessstep.h @@ -42,14 +42,15 @@ protected: void doRun() override; void doCancel() override; void setLowPriority(); + void setDisplayedParameters(ProcessParameters *params); virtual void finish(bool success); - virtual void processStarted(); virtual void processStartupFailed(); virtual void stdOutput(const QString &output); virtual void stdError(const QString &output); private: + ProcessParameters *displayedParameters() const; virtual void processFinished(bool success); void handleProcessDone();