summaryrefslogtreecommitdiff
path: root/src/libs/utils/qtcprocess.h
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-05-28 18:59:45 +0200
committerhjk <hjk@qt.io>2019-05-29 14:36:46 +0000
commit4098be05b23dd20aaf752fb9aec79fe8d90a4220 (patch)
treeb593688a2f5808fb42221dcf4127faeba0d8c6c6 /src/libs/utils/qtcprocess.h
parentf50859e856b911ba0667fc9aaa5df4c8882f8679 (diff)
downloadqt-creator-4098be05b23dd20aaf752fb9aec79fe8d90a4220.tar.gz
Utils: Extract a CommandLine structure from a QtcProcess
We regularly pass around strings or filenames or pairs of strings or filenames and stringlist etc the in the end will be used as a kind of "command line", with quite a bit of ad-hoc user code and QtcProcess::addArg etc to set them up and manipulate them. Let's have a class for that concept. Change-Id: I288ab939d853b32c717135a65242c584c2beab50 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/libs/utils/qtcprocess.h')
-rw-r--r--src/libs/utils/qtcprocess.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/libs/utils/qtcprocess.h b/src/libs/utils/qtcprocess.h
index 44c5786661..69c79098b4 100644
--- a/src/libs/utils/qtcprocess.h
+++ b/src/libs/utils/qtcprocess.h
@@ -32,16 +32,32 @@
namespace Utils {
class AbstractMacroExpander;
+class QTCREATOR_UTILS_EXPORT CommandLine
+{
+public:
+ CommandLine() {}
+
+ CommandLine(const FilePath &executable, const QString &arguments)
+ : m_executable(executable), m_arguments(arguments)
+ {}
+
+ FilePath executable() const { return m_executable; }
+ QString arguments() const { return m_arguments; }
+
+private:
+ FilePath m_executable;
+ QString m_arguments;
+};
+
class QTCREATOR_UTILS_EXPORT QtcProcess : public QProcess
{
Q_OBJECT
public:
QtcProcess(QObject *parent = nullptr);
- void setEnvironment(const Environment &env)
- { m_environment = env; m_haveEnv = true; }
- void setCommand(const QString &command, const QString &arguments)
- { m_command = command; m_arguments = arguments; }
+
+ void setEnvironment(const Environment &env) { m_environment = env; m_haveEnv = true; }
+ void setCommand(const CommandLine &cmdLine) { m_commandLine = cmdLine; }
void setUseCtrlCStub(bool enabled);
void start();
void terminate();
@@ -141,8 +157,7 @@ public:
};
private:
- QString m_command;
- QString m_arguments;
+ CommandLine m_commandLine;
Environment m_environment;
bool m_haveEnv = false;
bool m_useCtrlCStub = false;