aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-06-23 11:22:30 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-06-24 09:41:10 +0000
commit9fde8511e26edce60e3fc58212a7bf3c576f9518 (patch)
tree939d61a8c0a7ed3260419ec94af583658af7c856
parent44aea533f86f10f28ba9704713442cc1d0f15d20 (diff)
QtcProcess: Be idle when incoming data is empty
Don't forward and flush empty data Change-Id: Idb153695d7eb62905c000b70efdfb0c68f0df9ad Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
-rw-r--r--src/libs/utils/qtcprocess.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp
index 18283cc3a08..b05e6bc5fee 100644
--- a/src/libs/utils/qtcprocess.cpp
+++ b/src/libs/utils/qtcprocess.cpp
@@ -1983,21 +1983,24 @@ void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByt
m_hangTimerCount = 0;
// TODO: store a copy of m_processChannelMode on start()? Currently we assert that state
// is NotRunning when setting the process channel mode.
- if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedOutputChannel
- || m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
- std::cout << outputData.constData() << std::flush;
- } else {
- m_stdOut.append(outputData);
- if (!outputData.isEmpty())
+
+ if (!outputData.isEmpty()) {
+ if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedOutputChannel
+ || m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
+ std::cout << outputData.constData() << std::flush;
+ } else {
+ m_stdOut.append(outputData);
emitReadyReadStandardOutput();
+ }
}
- if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedErrorChannel
- || m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
- std::cerr << errorData.constData() << std::flush;
- } else {
- m_stdErr.append(errorData);
- if (!errorData.isEmpty())
+ if (!errorData.isEmpty()) {
+ if (m_process->m_setup.m_processChannelMode == QProcess::ForwardedErrorChannel
+ || m_process->m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
+ std::cerr << errorData.constData() << std::flush;
+ } else {
+ m_stdErr.append(errorData);
emitReadyReadStandardError();
+ }
}
}