diff --git a/src/libs/utils/outputformatter.cpp b/src/libs/utils/outputformatter.cpp index bb2973c6383..8ae568204d2 100644 --- a/src/libs/utils/outputformatter.cpp +++ b/src/libs/utils/outputformatter.cpp @@ -302,7 +302,8 @@ void OutputFormatter::doAppendMessage(const QString &text, OutputFormat format) // then our formatting should reflect that redirection as well, i.e. print in red // even if the nominal format is stdout. if (!involvedParsers.isEmpty()) { - const OutputFormat formatForParser = outputTypeForParser(involvedParsers.last(), format); + const OutputFormat formatForParser = res.formatOverride + ? *res.formatOverride : outputTypeForParser(involvedParsers.last(), format); if (formatForParser != format && cleanLine == text && formattedText.length() == 1) { charFmt = charFormat(formatForParser); formattedText.first().format = charFmt; diff --git a/src/libs/utils/outputformatter.h b/src/libs/utils/outputformatter.h index 00530325225..f34b984ce8c 100644 --- a/src/libs/utils/outputformatter.h +++ b/src/libs/utils/outputformatter.h @@ -65,11 +65,13 @@ public: using LinkSpecs = QList; class Result { public: - Result(Status s, const LinkSpecs &l = {}, const optional &c = {}) - : status(s), linkSpecs(l), newContent(c) {} + Result(Status s, const LinkSpecs &l = {}, const optional &c = {}, + const optional &f = {}) + : status(s), linkSpecs(l), newContent(c), formatOverride(f) {} Status status; LinkSpecs linkSpecs; optional newContent; // Hard content override. Only to be used in extreme cases. + optional formatOverride; }; static bool isLinkTarget(const QString &target); diff --git a/src/plugins/qtsupport/qttestparser.cpp b/src/plugins/qtsupport/qttestparser.cpp index e2bb435ad92..3496cdd4b06 100644 --- a/src/plugins/qtsupport/qttestparser.cpp +++ b/src/plugins/qtsupport/qttestparser.cpp @@ -59,7 +59,7 @@ OutputLineParser::Result QtTestParser::handleLine(const QString &line, OutputFor emitCurrentTask(); m_currentTask = Task(Task::Error, theLine, FilePath(), -1, Constants::TASK_CATEGORY_AUTOTEST); - return Status::InProgress; + return {Status::InProgress, {}, {}, StdErrFormat}; } if (m_currentTask.isNull()) return Status::NotHandled;