diff options
-rw-r--r-- | src/libs/utils/outputformatter.cpp | 5 | ||||
-rw-r--r-- | src/libs/utils/outputformatter.h | 3 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtoutputformatter.cpp | 25 |
3 files changed, 16 insertions, 17 deletions
diff --git a/src/libs/utils/outputformatter.cpp b/src/libs/utils/outputformatter.cpp index ad077755ca..5ed3d2f7d4 100644 --- a/src/libs/utils/outputformatter.cpp +++ b/src/libs/utils/outputformatter.cpp @@ -112,6 +112,11 @@ void OutputFormatter::append(const QString &text, const QTextCharFormat &format) d->cursor.insertText(text.mid(startPos), format); } +QTextCursor &OutputFormatter::cursor() const +{ + return d->cursor; +} + QTextCharFormat OutputFormatter::linkFormat(const QTextCharFormat &inputFormat, const QString &href) { QTextCharFormat result = inputFormat; diff --git a/src/libs/utils/outputformatter.h b/src/libs/utils/outputformatter.h index 5b7acb0337..eb38f709bc 100644 --- a/src/libs/utils/outputformatter.h +++ b/src/libs/utils/outputformatter.h @@ -52,7 +52,7 @@ public: ~OutputFormatter() override; QPlainTextEdit *plainTextEdit() const; - virtual void setPlainTextEdit(QPlainTextEdit *plainText); + void setPlainTextEdit(QPlainTextEdit *plainText); void flush(); @@ -72,6 +72,7 @@ protected: QTextCharFormat charFormat(OutputFormat format) const; QList<FormattedText> parseAnsi(const QString &text, const QTextCharFormat &format); void append(const QString &text, const QTextCharFormat &format); + QTextCursor &cursor() const; private: virtual void appendMessage(const QString &text, const QTextCharFormat &format); diff --git a/src/plugins/qtsupport/qtoutputformatter.cpp b/src/plugins/qtsupport/qtoutputformatter.cpp index 52517c5847..e0f71a8083 100644 --- a/src/plugins/qtsupport/qtoutputformatter.cpp +++ b/src/plugins/qtsupport/qtoutputformatter.cpp @@ -94,7 +94,6 @@ public: void appendMessage(const QString &text, Utils::OutputFormat format) override; void handleLink(const QString &href) override; - void setPlainTextEdit(QPlainTextEdit *plainText) override; protected: void clearLastLine() override; @@ -188,7 +187,7 @@ void QtOutputFormatter::appendMessagePart(const QString &txt, const QTextCharFor LinkResult lr = matchLine(line); if (!lr.href.isEmpty()) { // Found something && line continuation - d->cursor.insertText(deferredText, fmt); + cursor().insertText(deferredText, fmt); deferredText.clear(); if (!d->lastLine.isEmpty()) clearLastLine(); @@ -207,20 +206,20 @@ void QtOutputFormatter::appendMessagePart(const QString &txt, const QTextCharFor } d->lastLine.clear(); // Handled line continuation } - d->cursor.insertText(deferredText, fmt); + cursor().insertText(deferredText, fmt); } void QtOutputFormatter::appendMessage(const QString &txt, const QTextCharFormat &format) { - if (!d->cursor.atEnd()) - d->cursor.movePosition(QTextCursor::End); - d->cursor.beginEditBlock(); + if (!cursor().atEnd()) + cursor().movePosition(QTextCursor::End); + cursor().beginEditBlock(); const QList<FormattedText> ansiTextList = parseAnsi(txt, format); for (const FormattedText &output : ansiTextList) appendMessagePart(output.text, output.format); - d->cursor.endEditBlock(); + cursor().endEditBlock(); emit contentChanged(); } @@ -233,9 +232,9 @@ void QtOutputFormatter::appendLine(const LinkResult &lr, const QString &line, Ou void QtOutputFormatter::appendLine(const LinkResult &lr, const QString &line, const QTextCharFormat &format) { - d->cursor.insertText(line.left(lr.start), format); - d->cursor.insertText(line.mid(lr.start, lr.end - lr.start), linkFormat(format, lr.href)); - d->cursor.insertText(line.mid(lr.end), format); + cursor().insertText(line.left(lr.start), format); + cursor().insertText(line.mid(lr.start, lr.end - lr.start), linkFormat(format, lr.href)); + cursor().insertText(line.mid(lr.end), format); } void QtOutputFormatter::handleLink(const QString &href) @@ -304,12 +303,6 @@ void QtOutputFormatter::handleLink(const QString &href) } } -void QtOutputFormatter::setPlainTextEdit(QPlainTextEdit *plainText) -{ - OutputFormatter::setPlainTextEdit(plainText); - d->cursor = plainText ? plainText->textCursor() : QTextCursor(); -} - void QtOutputFormatter::clearLastLine() { OutputFormatter::clearLastLine(); |