From cd46079734e59ed0c8cc3d4ae7ae2b0abbc0dd60 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 8 May 2012 15:55:29 +0200 Subject: [PATCH] OutputFormatter: Make clearLastLine() virtual Make sure subclasses can call clearLastLine() to at the same time remove last line from the editor and QtOutputFormatter, where it is buffered too. Change-Id: I33910943b96d821018e936f72e0c32a96b844e15 Reviewed-by: Daniel Teske --- src/libs/utils/outputformatter.h | 2 +- src/plugins/qtsupport/qtoutputformatter.cpp | 13 ++++++++++--- src/plugins/qtsupport/qtoutputformatter.h | 3 +++ 3 files changed, 14 insertions(+), 4 deletions(-) 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();