From 354f67f11a4ac7500e8397cd5c49d3a993202c52 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 2 Dec 2022 15:27:22 +0100 Subject: [PATCH] AbstractProcessStep: Remove two virtual methods Remove stdOutput() and stdError() virtual methods. Connect to addOutput() signal in subclasses instead and filter for desired channel. Change-Id: Ifd9a2e4ff037776caa706bbdb9634992060172ff Reviewed-by: hjk Reviewed-by: Reviewed-by: Qt CI Bot --- src/plugins/android/androidbuildapkstep.cpp | 7 +++-- src/plugins/android/androidbuildapkstep.h | 3 +- .../projectexplorer/abstractprocessstep.cpp | 28 +++---------------- .../projectexplorer/abstractprocessstep.h | 2 -- src/plugins/remotelinux/makeinstallstep.cpp | 16 +++++------ src/plugins/remotelinux/makeinstallstep.h | 1 - 6 files changed, 17 insertions(+), 40 deletions(-) diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index 39cb6723659..b6c18f84693 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -456,6 +456,11 @@ AndroidBuildApkStep::AndroidBuildApkStep(BuildStepList *parent, Utils::Id id) { setImmutable(true); setDisplayName(Tr::tr("Build Android APK")); + + connect(this, &BuildStep::addOutput, this, [this](const QString &string, OutputFormat format) { + if (format == OutputFormat::Stderr) + stdError(string); + }); } bool AndroidBuildApkStep::init() @@ -872,8 +877,6 @@ void AndroidBuildApkStep::setBuildTargetSdk(const QString &sdk) void AndroidBuildApkStep::stdError(const QString &output) { - AbstractProcessStep::stdError(output); - QString newOutput = output; newOutput.remove(QRegularExpression("^(\\n)+")); diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h index 5f8ee17c4b4..e702cc1a571 100644 --- a/src/plugins/android/androidbuildapkstep.h +++ b/src/plugins/android/androidbuildapkstep.h @@ -52,8 +52,6 @@ public: QString buildTargetSdk() const; void setBuildTargetSdk(const QString &sdk); - void stdError(const QString &output) override; - QVariant data(Utils::Id id) const override; private: @@ -67,6 +65,7 @@ private: bool verifyCertificatePassword(); void doRun() override; + void stdError(const QString &output); void reportWarningOrError(const QString &message, ProjectExplorer::Task::TaskType type); diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp index f47bfcab0c6..b01c5f5529d 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.cpp +++ b/src/plugins/projectexplorer/abstractprocessstep.cpp @@ -205,10 +205,12 @@ void AbstractProcessStep::doRun() d->m_process->setLowPriority(); connect(d->m_process.get(), &QtcProcess::readyReadStandardOutput, this, [this] { - stdOutput(d->stdoutStream->toUnicode(d->m_process->readAllStandardOutput())); + emit addOutput(d->stdoutStream->toUnicode(d->m_process->readAllStandardOutput()), + OutputFormat::Stdout, DontAppendNewline); }); connect(d->m_process.get(), &QtcProcess::readyReadStandardError, this, [this] { - stdError(d->stderrStream->toUnicode(d->m_process->readAllStandardError())); + emit addOutput(d->stderrStream->toUnicode(d->m_process->readAllStandardError()), + OutputFormat::Stderr, DontAppendNewline); }); connect(d->m_process.get(), &QtcProcess::started, this, [this] { ProcessParameters *params = displayedParameters(); @@ -326,28 +328,6 @@ void AbstractProcessStep::processStartupFailed() finish(false); } -/*! - Called for each line of output on stdOut(). - - The default implementation adds the line to the application output window. -*/ - -void AbstractProcessStep::stdOutput(const QString &output) -{ - emit addOutput(output, OutputFormat::Stdout, DontAppendNewline); -} - -/*! - Called for each line of output on StdErrror(). - - The default implementation adds the line to the application output window. -*/ - -void AbstractProcessStep::stdError(const QString &output) -{ - emit addOutput(output, OutputFormat::Stderr, DontAppendNewline); -} - void AbstractProcessStep::finish(bool success) { emit finished(success); diff --git a/src/plugins/projectexplorer/abstractprocessstep.h b/src/plugins/projectexplorer/abstractprocessstep.h index 586267c44fe..a6af2416236 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.h +++ b/src/plugins/projectexplorer/abstractprocessstep.h @@ -45,8 +45,6 @@ protected: void setDisplayedParameters(ProcessParameters *params); virtual void finish(bool success); - virtual void stdOutput(const QString &output); - virtual void stdError(const QString &output); private: void processStartupFailed(); diff --git a/src/plugins/remotelinux/makeinstallstep.cpp b/src/plugins/remotelinux/makeinstallstep.cpp index 9f3dbec24a5..9948689c77a 100644 --- a/src/plugins/remotelinux/makeinstallstep.cpp +++ b/src/plugins/remotelinux/makeinstallstep.cpp @@ -115,6 +115,13 @@ MakeInstallStep::MakeInstallStep(BuildStepList *parent, Id id) : MakeStep(parent const MakeInstallCommand cmd = buildSystem()->makeInstallCommand(rootPath); QTC_ASSERT(!cmd.command.isEmpty(), return); makeAspect->setExecutable(cmd.command.executable()); + + connect(this, &BuildStep::addOutput, this, [this](const QString &string, OutputFormat format) { + // When using Makefiles: "No rule to make target 'install'" + // When using ninja: "ninja: error: unknown target 'install'" + if (format == OutputFormat::Stderr && string.contains("target 'install'")) + m_noInstallTarget = true; + }); } Utils::Id MakeInstallStep::stepId() @@ -215,15 +222,6 @@ void MakeInstallStep::finish(bool success) MakeStep::finish(success); } -void MakeInstallStep::stdError(const QString &line) -{ - // When using Makefiles: "No rule to make target 'install'" - // When using ninja: "ninja: error: unknown target 'install'" - if (line.contains("target 'install'")) - m_noInstallTarget = true; - MakeStep::stdError(line); -} - FilePath MakeInstallStep::installRoot() const { return static_cast(aspect(InstallRootAspectId))->filePath(); diff --git a/src/plugins/remotelinux/makeinstallstep.h b/src/plugins/remotelinux/makeinstallstep.h index 2f6ba40c2fb..50a64240b27 100644 --- a/src/plugins/remotelinux/makeinstallstep.h +++ b/src/plugins/remotelinux/makeinstallstep.h @@ -24,7 +24,6 @@ private: QWidget *createConfigWidget() override; bool init() override; void finish(bool success) override; - void stdError(const QString &line) override; bool isJobCountSupported() const override { return false; } Utils::FilePath installRoot() const;