diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-02-24 23:36:09 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-02-26 13:05:37 +0000 |
commit | 93bb48893fa2eaaeae8347ab0b19ea337bc889ce (patch) | |
tree | 79db2c4380214e116d82cabb16a10d59d2f27054 /src/plugins/qtsupport/qtoutputformatter.cpp | |
parent | dc08efac6f1dc3cf9a1a79e4338c6eacd74d8b86 (diff) |
QtSupport: Use a fixed cursor in QtOutputFormatter
Change-Id: I5fb762cd767c31673f4dba6044db9f135e71102b
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/qtsupport/qtoutputformatter.cpp')
-rw-r--r-- | src/plugins/qtsupport/qtoutputformatter.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/plugins/qtsupport/qtoutputformatter.cpp b/src/plugins/qtsupport/qtoutputformatter.cpp index 1f0de548779..dc8e40323d6 100644 --- a/src/plugins/qtsupport/qtoutputformatter.cpp +++ b/src/plugins/qtsupport/qtoutputformatter.cpp @@ -81,6 +81,7 @@ public: QPointer<Project> project; QString lastLine; FileInProjectFinder projectFinder; + QTextCursor cursor; }; } // namespace Internal @@ -172,14 +173,14 @@ void QtOutputFormatter::appendMessagePart(QTextCursor &cursor, const QString &tx void QtOutputFormatter::appendMessage(const QString &txt, const QTextCharFormat &format) { - QTextCursor cursor(plainTextEdit()->document()); - cursor.movePosition(QTextCursor::End); - cursor.beginEditBlock(); + if (!d->cursor.atEnd()) + d->cursor.movePosition(QTextCursor::End); + d->cursor.beginEditBlock(); foreach (const FormattedText &output, parseAnsi(txt, format)) - appendMessagePart(cursor, output.text, output.format); + appendMessagePart(d->cursor, output.text, output.format); - cursor.endEditBlock(); + d->cursor.endEditBlock(); } void QtOutputFormatter::appendLine(QTextCursor &cursor, const LinkResult &lr, @@ -263,6 +264,12 @@ 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(); |