Utils: Introduce a struct for QtcProcess ctor arguments

We'll need a lot of combinations.

Change-Id: Ic92ad6fba1d96c42571be76f7c24b253f210b132
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
hjk
2022-01-27 17:00:01 +01:00
parent 1d15a934cd
commit 3769169b8e
2 changed files with 22 additions and 20 deletions

View File

@@ -748,9 +748,11 @@ static QtcProcess::ProcessImpl defaultProcessImpl()
return QtcProcess::ProcessLauncherImpl; return QtcProcess::ProcessLauncherImpl;
} }
QtcProcess::QtcProcess(ProcessImpl processImpl, ProcessMode processMode, TerminalMode terminalMode, QtcProcess::QtcProcess(const Setup &setup, QObject *parent)
QObject *parent) : QObject(parent),
: QObject(parent), d(new QtcProcessPrivate(this, processImpl, processMode, terminalMode)) d(new QtcProcessPrivate(this,
setup.processImpl == DefaultImpl ? defaultProcessImpl() : setup.processImpl,
setup.processMode, setup.terminalMode))
{ {
static int qProcessExitStatusMeta = qRegisterMetaType<QProcess::ExitStatus>(); static int qProcessExitStatusMeta = qRegisterMetaType<QProcess::ExitStatus>();
static int qProcessProcessErrorMeta = qRegisterMetaType<QProcess::ProcessError>(); static int qProcessProcessErrorMeta = qRegisterMetaType<QProcess::ProcessError>();
@@ -758,17 +760,9 @@ QtcProcess::QtcProcess(ProcessImpl processImpl, ProcessMode processMode, Termina
Q_UNUSED(qProcessProcessErrorMeta) 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::QtcProcess(QObject *parent)
: QtcProcess(defaultProcessImpl(), ProcessMode::Reader, TerminalMode::TerminalOff, parent) {} : QtcProcess({}, parent)
{}
QtcProcess::~QtcProcess() QtcProcess::~QtcProcess()
{ {

View File

@@ -62,7 +62,8 @@ class QTCREATOR_UTILS_EXPORT QtcProcess : public QObject
public: public:
enum ProcessImpl { enum ProcessImpl {
QProcessImpl, QProcessImpl,
ProcessLauncherImpl ProcessLauncherImpl,
DefaultImpl,
}; };
enum TerminalMode { enum TerminalMode {
@@ -73,12 +74,19 @@ public:
TerminalOn = TerminalRun // default mode for ON TerminalOn = TerminalRun // default mode for ON
}; };
QtcProcess(ProcessImpl processImpl, ProcessMode processMode, TerminalMode terminalMode, struct Setup {
QObject *parent = nullptr); Setup() {}
QtcProcess(ProcessImpl processImpl, QObject *parent = nullptr); Setup(ProcessImpl processImpl) : processImpl(processImpl) {}
QtcProcess(ProcessMode processMode, QObject *parent = nullptr); Setup(ProcessMode processMode) : processMode(processMode) {}
QtcProcess(TerminalMode terminalMode, QObject *parent = nullptr); Setup(TerminalMode terminalMode) : terminalMode(terminalMode) {}
QtcProcess(QObject *parent = nullptr);
ProcessImpl processImpl = DefaultImpl;
ProcessMode processMode = ProcessMode::Reader;
TerminalMode terminalMode = TerminalOff;
};
QtcProcess(const Setup &setup = {}, QObject *parent = nullptr);
QtcProcess(QObject *parent);
~QtcProcess(); ~QtcProcess();
ProcessMode processMode() const; ProcessMode processMode() const;