summaryrefslogtreecommitdiff
path: root/src/libs/utils/qtcprocess.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/utils/qtcprocess.cpp')
-rw-r--r--src/libs/utils/qtcprocess.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp
index 42a0165b0d..6384aef7d3 100644
--- a/src/libs/utils/qtcprocess.cpp
+++ b/src/libs/utils/qtcprocess.cpp
@@ -752,7 +752,7 @@ void QtcProcess::start()
#endif
// Note: Arguments set with setNativeArgs will be appended to the ones
// passed with start() below.
- QProcess::start(command, QStringList());
+ QProcess::start(command, QStringList(), m_openMode);
} else {
if (!success) {
setErrorString(tr("Error in command line."));
@@ -761,7 +761,7 @@ void QtcProcess::start()
emit errorOccurred(QProcess::UnknownError);
return;
}
- QProcess::start(command, arguments.toUnixArgs());
+ QProcess::start(command, arguments.toUnixArgs(), m_openMode);
}
if (m_synchronous)
@@ -1275,6 +1275,22 @@ void QtcProcess::setSynchronous(bool on)
m_synchronous = on;
}
+void QtcProcess::setOpenMode(OpenMode mode)
+{
+ m_openMode = mode;
+}
+
+bool QtcProcess::stopProcess()
+{
+ if (state() == QProcess::NotRunning)
+ return true;
+ terminate();
+ if (waitForFinished(300))
+ return true;
+ kill();
+ return waitForFinished(300);
+}
+
bool QtcProcess::ArgIterator::next()
{
// We delay the setting of m_prev so we can still delete the last argument