aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-12-02 11:33:28 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-12-02 15:37:16 +0000
commitdfd079f0503c7b6dc3defd48ed732c3ddb3af9c9 (patch)
tree9c2d9a79a3a57a343f033fb0005557591959cde4
parentd8bd889eee25349b1a72da1379d6cb3e91503786 (diff)
AbstractProcessStep: Merge virtual functions
Merge processSucceeded with processFinished into one virtual function. Leave default implementation empty, so that reimplementations don't need to call base impl. Move processFinished into private section. Pass just one bool success parameter into processFinished. Change-Id: Ide3e262de0c0c5583c9fec2426fa460b6b74a49d Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/plugins/android/androidbuildapkstep.cpp5
-rw-r--r--src/plugins/android/androidbuildapkstep.h2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildstep.cpp6
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildstep.h2
-rw-r--r--src/plugins/projectexplorer/abstractprocessstep.cpp51
-rw-r--r--src/plugins/projectexplorer/abstractprocessstep.h3
-rw-r--r--src/plugins/qmakeprojectmanager/qmakestep.cpp6
-rw-r--r--src/plugins/qmakeprojectmanager/qmakestep.h2
8 files changed, 29 insertions, 48 deletions
diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp
index 4507b661d8..b53b181898 100644
--- a/src/plugins/android/androidbuildapkstep.cpp
+++ b/src/plugins/android/androidbuildapkstep.cpp
@@ -613,10 +613,9 @@ QWidget *AndroidBuildApkStep::createConfigWidget()
return new AndroidBuildApkWidget(this);
}
-void AndroidBuildApkStep::processFinished(int exitCode, QProcess::ExitStatus status)
+void AndroidBuildApkStep::processFinished(bool success)
{
- AbstractProcessStep::processFinished(exitCode, status);
- if (m_openPackageLocationForRun && status == QProcess::NormalExit && exitCode == 0)
+ if (m_openPackageLocationForRun && success)
QTimer::singleShot(0, this, &AndroidBuildApkStep::showInGraphicalShell);
}
diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h
index 1df17d4200..1408afb8aa 100644
--- a/src/plugins/android/androidbuildapkstep.h
+++ b/src/plugins/android/androidbuildapkstep.h
@@ -62,7 +62,7 @@ private:
void setupOutputFormatter(Utils::OutputFormatter *formatter) override;
QWidget *createConfigWidget() override;
void processStarted() override;
- void processFinished(int exitCode, QProcess::ExitStatus status) override;
+ void processFinished(bool success) override;
bool verifyKeystorePassword();
bool verifyCertificatePassword();
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
index 6892aeca37..1b64277862 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
@@ -716,10 +716,10 @@ QString CMakeBuildStep::baseEnvironmentText() const
return Tr::tr("System Environment");
}
-void CMakeBuildStep::processFinished(int exitCode, QProcess::ExitStatus status)
+void CMakeBuildStep::processFinished(bool success)
{
- AbstractProcessStep::processFinished(exitCode, status);
- emit progress(100, QString());
+ Q_UNUSED(success)
+ emit progress(100, {});
}
// CMakeBuildStepFactory
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.h b/src/plugins/cmakeprojectmanager/cmakebuildstep.h
index b827b53365..8abedefe94 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.h
@@ -77,7 +77,7 @@ signals:
private:
Utils::CommandLine cmakeCommand() const;
- void processFinished(int exitCode, QProcess::ExitStatus status) override;
+ void processFinished(bool success) override;
bool fromMap(const QVariantMap &map) override;
bool init() override;
diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp
index 7491921799..4156989a84 100644
--- a/src/plugins/projectexplorer/abstractprocessstep.cpp
+++ b/src/plugins/projectexplorer/abstractprocessstep.cpp
@@ -4,13 +4,9 @@
#include "abstractprocessstep.h"
#include "buildconfiguration.h"
#include "buildstep.h"
-#include "ioutputparser.h"
#include "processparameters.h"
-#include "project.h"
#include "projectexplorer.h"
#include "projectexplorersettings.h"
-#include "target.h"
-#include "task.h"
#include <utils/fileutils.h>
#include <utils/outputformatter.h>
@@ -262,14 +258,25 @@ bool AbstractProcessStep::setupProcessParameters(ProcessParameters *params) cons
void AbstractProcessStep::Private::cleanUp(int exitCode, QProcess::ExitStatus status)
{
- // The process has finished, leftover data was read in handleProcessDone
- q->processFinished(exitCode, status);
- const bool returnValue = q->processSucceeded(exitCode, status) || m_ignoreReturnValue;
+ const QString command = m_param.effectiveCommand().toUserOutput();
+ if (status == QProcess::NormalExit && exitCode == 0) {
+ emit q->addOutput(tr("The process \"%1\" exited normally.").arg(command),
+ BuildStep::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);
+ } else {
+ emit q->addOutput(tr("The process \"%1\" crashed.").arg(command),
+ BuildStep::OutputFormat::ErrorMessage);
+ }
+ const bool success = exitCode == 0 && status == QProcess::NormalExit
+ && !outputFormatter->hasFatalErrors();
+ q->processFinished(success);
if (m_process)
m_process.release()->deleteLater();
-
- q->finish(returnValue);
+ q->finish(success || m_ignoreReturnValue);
}
/*!
@@ -293,19 +300,9 @@ void AbstractProcessStep::processStarted()
The default implementation adds a line to the output window.
*/
-void AbstractProcessStep::processFinished(int exitCode, QProcess::ExitStatus status)
+void AbstractProcessStep::processFinished(bool success)
{
- const QString command = d->m_param.effectiveCommand().toUserOutput();
- if (status == QProcess::NormalExit && exitCode == 0) {
- emit addOutput(tr("The process \"%1\" exited normally.").arg(command),
- BuildStep::OutputFormat::NormalMessage);
- } else if (status == QProcess::NormalExit) {
- emit addOutput(tr("The process \"%1\" exited with code %2.")
- .arg(command, QString::number(exitCode)),
- BuildStep::OutputFormat::ErrorMessage);
- } else {
- emit addOutput(tr("The process \"%1\" crashed.").arg(command), BuildStep::OutputFormat::ErrorMessage);
- }
+ Q_UNUSED(success)
}
/*!
@@ -327,18 +324,6 @@ void AbstractProcessStep::processStartupFailed()
finish(false);
}
-/*!
- Called to test whether a process succeeded or not.
-*/
-
-bool AbstractProcessStep::processSucceeded(int exitCode, QProcess::ExitStatus status)
-{
- if (d->outputFormatter->hasFatalErrors())
- return false;
-
- return exitCode == 0 && status == QProcess::NormalExit;
-}
-
void AbstractProcessStep::processReadyReadStdOutput()
{
QTC_ASSERT(d->m_process.get(), return);
diff --git a/src/plugins/projectexplorer/abstractprocessstep.h b/src/plugins/projectexplorer/abstractprocessstep.h
index 47c8ccef1a..d0fe76c1bb 100644
--- a/src/plugins/projectexplorer/abstractprocessstep.h
+++ b/src/plugins/projectexplorer/abstractprocessstep.h
@@ -45,13 +45,12 @@ protected:
virtual void finish(bool success);
virtual void processStarted();
- virtual void processFinished(int exitCode, QProcess::ExitStatus status);
virtual void processStartupFailed();
- virtual bool processSucceeded(int exitCode, QProcess::ExitStatus status);
virtual void stdOutput(const QString &output);
virtual void stdError(const QString &output);
private:
+ virtual void processFinished(bool success);
void processReadyReadStdOutput();
void processReadyReadStdError();
void handleProcessDone();
diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp
index 5a5ccf602e..bcb87214a2 100644
--- a/src/plugins/qmakeprojectmanager/qmakestep.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp
@@ -300,13 +300,11 @@ void QMakeStep::processStartupFailed()
AbstractProcessStep::processStartupFailed();
}
-bool QMakeStep::processSucceeded(int exitCode, QProcess::ExitStatus status)
+void QMakeStep::processFinished(bool success)
{
- bool result = AbstractProcessStep::processSucceeded(exitCode, status);
- if (!result)
+ if (!success)
m_needToRunQMake = true;
emit buildConfiguration()->buildDirectoryInitialized();
- return result;
}
void QMakeStep::finish(bool success)
diff --git a/src/plugins/qmakeprojectmanager/qmakestep.h b/src/plugins/qmakeprojectmanager/qmakestep.h
index 555904f53f..03e8250ea2 100644
--- a/src/plugins/qmakeprojectmanager/qmakestep.h
+++ b/src/plugins/qmakeprojectmanager/qmakestep.h
@@ -138,10 +138,10 @@ public:
protected:
bool fromMap(const QVariantMap &map) override;
void processStartupFailed() override;
- bool processSucceeded(int exitCode, QProcess::ExitStatus status) override;
private:
void finish(bool success) override;
+ void processFinished(bool success) override;
void startOneCommand(const Utils::CommandLine &command);
void runNextCommand();