diff options
Diffstat (limited to 'src/plugins/git/giteditor.cpp')
-rw-r--r-- | src/plugins/git/giteditor.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp index 24acb25861..940945d3be 100644 --- a/src/plugins/git/giteditor.cpp +++ b/src/plugins/git/giteditor.cpp @@ -38,6 +38,7 @@ #include <vcsbase/vcsbaseeditorconfig.h> #include <vcsbase/vcsoutputwindow.h> +#include <utils/ansiescapecodehandler.h> #include <utils/qtcassert.h> #include <utils/temporaryfile.h> @@ -205,6 +206,20 @@ void GitEditorWidget::setPlainText(const QString &text) // If desired, filter out the date from annotation switch (contentType()) { + case LogOutput: { + Utils::AnsiEscapeCodeHandler handler; + const QList<Utils::FormattedText> formattedTextList + = handler.parseText(Utils::FormattedText(text)); + + clear(); + QTextCursor cursor = textCursor(); + cursor.beginEditBlock(); + for (const auto &formattedChunk : formattedTextList) + cursor.insertText(formattedChunk.text, formattedChunk.format); + cursor.endEditBlock(); + + return; + } case AnnotateOutput: modText = sanitizeBlameOutput(text); break; @@ -247,7 +262,7 @@ void GitEditorWidget::applyDiffChunk(const DiffChunk& chunk, bool revert) void GitEditorWidget::init() { VcsBaseEditorWidget::init(); - Core::Id editorId = textDocument()->id(); + Utils::Id editorId = textDocument()->id(); if (editorId == Git::Constants::GIT_COMMIT_TEXT_EDITOR_ID) textDocument()->setSyntaxHighlighter(new GitSubmitHighlighter); else if (editorId == Git::Constants::GIT_REBASE_EDITOR_ID) @@ -272,7 +287,7 @@ void GitEditorWidget::addDiffActions(QMenu *menu, const DiffChunk &chunk) void GitEditorWidget::aboutToOpen(const QString &fileName, const QString &realFileName) { Q_UNUSED(realFileName) - Core::Id editorId = textDocument()->id(); + Utils::Id editorId = textDocument()->id(); if (editorId == Git::Constants::GIT_COMMIT_TEXT_EDITOR_ID || editorId == Git::Constants::GIT_REBASE_EDITOR_ID) { QFileInfo fi(fileName); |