diff --git a/src/libs/utils/outputformatter.h b/src/libs/utils/outputformatter.h index 93c05f5288e..33883a09d2d 100644 --- a/src/libs/utils/outputformatter.h +++ b/src/libs/utils/outputformatter.h @@ -66,7 +66,7 @@ public: protected: void initFormats(); - void clearLastLine(); + virtual void clearLastLine(); QTextCharFormat charFormat(OutputFormat format) const; static QColor mixColors(const QColor &a, const QColor &b); diff --git a/src/plugins/qtsupport/qtoutputformatter.cpp b/src/plugins/qtsupport/qtoutputformatter.cpp index c4b14de5af6..7b0f3220175 100644 --- a/src/plugins/qtsupport/qtoutputformatter.cpp +++ b/src/plugins/qtsupport/qtoutputformatter.cpp @@ -145,18 +145,19 @@ void QtOutputFormatter::appendMessage(const QString &txt, Utils::OutputFormat fo if (!m_lastLine.isEmpty()) { // Line continuation const QString newPart = txt.mid(start); - m_lastLine.append(newPart); - LinkResult lr = matchLine(m_lastLine); + const QString line = m_lastLine + newPart; + LinkResult lr = matchLine(line); if (!lr.href.isEmpty()) { // Found something && line continuation cursor.insertText(deferedText, charFormat(format)); deferedText.clear(); clearLastLine(); - appendLine(cursor, lr, m_lastLine, format); + appendLine(cursor, lr, line, format); } else { // Found nothing, just emit the new part deferedText += newPart; } + m_lastLine = line; } else { m_lastLine = txt.mid(start); LinkResult lr = matchLine(m_lastLine); @@ -246,6 +247,12 @@ void QtOutputFormatter::handleLink(const QString &href) } } +void QtOutputFormatter::clearLastLine() +{ + OutputFormatter::clearLastLine(); + m_lastLine.clear(); +} + void QtOutputFormatter::updateProjectFileList() { if (m_project) diff --git a/src/plugins/qtsupport/qtoutputformatter.h b/src/plugins/qtsupport/qtoutputformatter.h index 7e3aebd72ca..0fd31bfc132 100644 --- a/src/plugins/qtsupport/qtoutputformatter.h +++ b/src/plugins/qtsupport/qtoutputformatter.h @@ -67,6 +67,9 @@ public: Utils::OutputFormat format); virtual void handleLink(const QString &href); +protected: + void clearLastLine(); + private slots: void updateProjectFileList();