diff options
author | hjk <hjk@qt.io> | 2019-06-12 15:25:51 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-06-13 07:28:45 +0000 |
commit | 465d4cc845364ce6457af83ae1298f2daabc4664 (patch) | |
tree | f856f01e874ea6f172883611a2c68a1da5c05c7f /src/libs/utils/consoleprocess_unix.cpp | |
parent | 1455ab6c07601a3f88cb1cf5d0cbc56223c50f42 (diff) | |
download | qt-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.cpp | 18 |
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; |