From 3769169b8ee8d0875ed6b08978b63213e8310c01 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 27 Jan 2022 17:00:01 +0100 Subject: [PATCH] Utils: Introduce a struct for QtcProcess ctor arguments We'll need a lot of combinations. Change-Id: Ic92ad6fba1d96c42571be76f7c24b253f210b132 Reviewed-by: Jarek Kobus Reviewed-by: Qt CI Bot --- src/libs/utils/qtcprocess.cpp | 20 +++++++------------- src/libs/utils/qtcprocess.h | 22 +++++++++++++++------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 74fd21f2a85..04561a5af8b 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -748,9 +748,11 @@ static QtcProcess::ProcessImpl defaultProcessImpl() return QtcProcess::ProcessLauncherImpl; } -QtcProcess::QtcProcess(ProcessImpl processImpl, ProcessMode processMode, TerminalMode terminalMode, - QObject *parent) - : QObject(parent), d(new QtcProcessPrivate(this, processImpl, processMode, terminalMode)) +QtcProcess::QtcProcess(const Setup &setup, QObject *parent) + : QObject(parent), + d(new QtcProcessPrivate(this, + setup.processImpl == DefaultImpl ? defaultProcessImpl() : setup.processImpl, + setup.processMode, setup.terminalMode)) { static int qProcessExitStatusMeta = qRegisterMetaType(); static int qProcessProcessErrorMeta = qRegisterMetaType(); @@ -758,17 +760,9 @@ QtcProcess::QtcProcess(ProcessImpl processImpl, ProcessMode processMode, Termina Q_UNUSED(qProcessProcessErrorMeta) } -QtcProcess::QtcProcess(ProcessImpl processImpl, QObject *parent) - : QtcProcess(processImpl, ProcessMode::Reader, TerminalMode::TerminalOff, parent) {} - -QtcProcess::QtcProcess(ProcessMode processMode, QObject *parent) - : QtcProcess(defaultProcessImpl(), processMode, TerminalMode::TerminalOff, parent) {} - -QtcProcess::QtcProcess(TerminalMode terminalMode, QObject *parent) - : QtcProcess(defaultProcessImpl(), ProcessMode::Reader, terminalMode, parent) {} - QtcProcess::QtcProcess(QObject *parent) - : QtcProcess(defaultProcessImpl(), ProcessMode::Reader, TerminalMode::TerminalOff, parent) {} + : QtcProcess({}, parent) +{} QtcProcess::~QtcProcess() { diff --git a/src/libs/utils/qtcprocess.h b/src/libs/utils/qtcprocess.h index 57783e38ade..592830041e1 100644 --- a/src/libs/utils/qtcprocess.h +++ b/src/libs/utils/qtcprocess.h @@ -62,7 +62,8 @@ class QTCREATOR_UTILS_EXPORT QtcProcess : public QObject public: enum ProcessImpl { QProcessImpl, - ProcessLauncherImpl + ProcessLauncherImpl, + DefaultImpl, }; enum TerminalMode { @@ -73,12 +74,19 @@ public: TerminalOn = TerminalRun // default mode for ON }; - QtcProcess(ProcessImpl processImpl, ProcessMode processMode, TerminalMode terminalMode, - QObject *parent = nullptr); - QtcProcess(ProcessImpl processImpl, QObject *parent = nullptr); - QtcProcess(ProcessMode processMode, QObject *parent = nullptr); - QtcProcess(TerminalMode terminalMode, QObject *parent = nullptr); - QtcProcess(QObject *parent = nullptr); + struct Setup { + Setup() {} + Setup(ProcessImpl processImpl) : processImpl(processImpl) {} + Setup(ProcessMode processMode) : processMode(processMode) {} + Setup(TerminalMode terminalMode) : terminalMode(terminalMode) {} + + ProcessImpl processImpl = DefaultImpl; + ProcessMode processMode = ProcessMode::Reader; + TerminalMode terminalMode = TerminalOff; + }; + + QtcProcess(const Setup &setup = {}, QObject *parent = nullptr); + QtcProcess(QObject *parent); ~QtcProcess(); ProcessMode processMode() const;