diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index 3b601d45cbd..6085a720832 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -1264,6 +1264,7 @@ public: bool m_stopReported = false; bool m_stopForced = false; + bool m_suppressDefaultStdOutHandling = false; void forwardStarted(); void forwardDone(); @@ -1372,6 +1373,9 @@ void SimpleTargetRunnerPrivate::handleDone() void SimpleTargetRunnerPrivate::handleStandardOutput() { + if (m_suppressDefaultStdOutHandling) + return; + const QByteArray data = m_process.readAllRawStandardOutput(); const QString msg = m_outputCodec->toUnicode( data.constData(), data.length(), &m_outputCodecState); @@ -1380,6 +1384,9 @@ void SimpleTargetRunnerPrivate::handleStandardOutput() void SimpleTargetRunnerPrivate::handleStandardError() { + if (m_suppressDefaultStdOutHandling) + return; + const QByteArray data = m_process.readAllRawStandardError(); const QString msg = m_outputCodec->toUnicode( data.constData(), data.length(), &m_errorCodecState); @@ -1571,6 +1578,16 @@ void SimpleTargetRunner::setProcessMode(Utils::ProcessMode processMode) d->m_process.setProcessMode(processMode); } +Process *SimpleTargetRunner::process() const +{ + return &d->m_process; +} + +void SimpleTargetRunner::suppressDefaultStdOutHandling() +{ + d->m_suppressDefaultStdOutHandling = true; +} + void SimpleTargetRunner::forceRunOnHost() { const FilePath executable = d->m_command.executable(); diff --git a/src/plugins/projectexplorer/runcontrol.h b/src/plugins/projectexplorer/runcontrol.h index 0c47ff18b6a..94288664361 100644 --- a/src/plugins/projectexplorer/runcontrol.h +++ b/src/plugins/projectexplorer/runcontrol.h @@ -27,6 +27,7 @@ class Icon; class MacroExpander; class OutputLineParser; class ProcessRunData; +class Process; } // Utils namespace ProjectExplorer { @@ -271,7 +272,9 @@ protected: void setEnvironment(const Utils::Environment &environment); void setWorkingDirectory(const Utils::FilePath &workingDirectory); void setProcessMode(Utils::ProcessMode processMode); + Utils::Process *process() const; + void suppressDefaultStdOutHandling(); void forceRunOnHost(); void addExtraData(const QString &key, const QVariant &value);