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;
}
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<QProcess::ExitStatus>();
static int qProcessProcessErrorMeta = qRegisterMetaType<QProcess::ProcessError>();
@@ -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()
{

View File

@@ -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;