summaryrefslogtreecommitdiff
path: root/src/libs/utils/consoleprocess_unix.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-06-12 15:25:51 +0200
committerhjk <hjk@qt.io>2019-06-13 07:28:45 +0000
commit465d4cc845364ce6457af83ae1298f2daabc4664 (patch)
treef856f01e874ea6f172883611a2c68a1da5c05c7f /src/libs/utils/consoleprocess_unix.cpp
parent1455ab6c07601a3f88cb1cf5d0cbc56223c50f42 (diff)
downloadqt-creator-465d4cc845364ce6457af83ae1298f2daabc4664.tar.gz
Utils: Use CommandLine in ConsoleProcess
Change-Id: I380b91513fa342819cba898196c91443622d0ae2 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/libs/utils/consoleprocess_unix.cpp')
-rw-r--r--src/libs/utils/consoleprocess_unix.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/libs/utils/consoleprocess_unix.cpp b/src/libs/utils/consoleprocess_unix.cpp
index 53a8c95848..6b02f92c24 100644
--- a/src/libs/utils/consoleprocess_unix.cpp
+++ b/src/libs/utils/consoleprocess_unix.cpp
@@ -60,12 +60,17 @@ qint64 ConsoleProcess::applicationMainThreadID() const
return -1;
}
+void ConsoleProcess::setCommand(const Utils::CommandLine &command)
+{
+ d->m_commandLine = command;
+}
+
void ConsoleProcess::setSettings(QSettings *settings)
{
d->m_settings = settings;
}
-bool ConsoleProcess::start(const QString &program, const QString &args)
+bool ConsoleProcess::start()
{
if (isRunning())
return false;
@@ -74,11 +79,12 @@ bool ConsoleProcess::start(const QString &program, const QString &args)
d->m_error = QProcess::UnknownError;
QtcProcess::SplitError perr;
- QtcProcess::Arguments pargs = QtcProcess::prepareArgs(args, &perr, HostOsInfo::hostOs(),
+ QtcProcess::Arguments pargs = QtcProcess::prepareArgs(d->m_commandLine.arguments(),
+ &perr, HostOsInfo::hostOs(),
&d->m_environment, &d->m_workingDir);
QString pcmd;
if (perr == QtcProcess::SplitOk) {
- pcmd = program;
+ pcmd = d->m_commandLine.executable().toString();
} else {
if (perr != QtcProcess::FoundMeta) {
emitError(QProcess::FailedToStart, tr("Quoting error in command."));
@@ -92,7 +98,8 @@ bool ConsoleProcess::start(const QString &program, const QString &args)
}
pcmd = QLatin1String("/bin/sh");
pargs = QtcProcess::Arguments::createUnixArgs(
- QStringList({"-c", (QtcProcess::quoteArg(program) + ' ' + args)}));
+ {"-c", (QtcProcess::quoteArg(d->m_commandLine.executable().toString())
+ + ' ' + d->m_commandLine.arguments())});
}
QtcProcess::SplitError qerr;
@@ -166,7 +173,6 @@ bool ConsoleProcess::start(const QString &program, const QString &args)
connect(d->m_stubConnectTimer, &QTimer::timeout, this, &ConsoleProcess::stop);
d->m_stubConnectTimer->setSingleShot(true);
d->m_stubConnectTimer->start(10000);
- d->m_executable = program;
return true;
}
@@ -285,7 +291,7 @@ void ConsoleProcess::readStubOutput()
if (out.startsWith("err:chdir ")) {
emitError(QProcess::FailedToStart, msgCannotChangeToWorkDir(workingDirectory(), errorMsg(out.mid(10).toInt())));
} else if (out.startsWith("err:exec ")) {
- emitError(QProcess::FailedToStart, msgCannotExecute(d->m_executable, errorMsg(out.mid(9).toInt())));
+ emitError(QProcess::FailedToStart, msgCannotExecute(d->m_commandLine.executable().toString(), errorMsg(out.mid(9).toInt())));
} else if (out.startsWith("spid ")) {
delete d->m_tempFile;
d->m_tempFile = nullptr;