From 7f21e8b29f68d7123d6ce94018aef5d8abc0319f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Tue, 28 Jan 2014 22:37:46 +0200 Subject: [PATCH] VCS: Do not wrap lines that start with tab in submit editor This breaks "Conflicts" section in Git, and possibly others Change-Id: I821fd147194af0ce3902cedad02f373d6892e665 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> --- src/plugins/vcsbase/submiteditorwidget.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/plugins/vcsbase/submiteditorwidget.cpp b/src/plugins/vcsbase/submiteditorwidget.cpp index da3745dfbc3..23c05af0779 100644 --- a/src/plugins/vcsbase/submiteditorwidget.cpp +++ b/src/plugins/vcsbase/submiteditorwidget.cpp @@ -34,6 +34,7 @@ #include <QDebug> #include <QPointer> +#include <QTextBlock> #include <QTimer> #include <QScopedPointer> @@ -299,11 +300,21 @@ static QString wrappedText(const QTextEdit *e) QTextCursor cursor(e->document()); cursor.movePosition(QTextCursor::Start); while (!cursor.atEnd()) { - cursor.select(QTextCursor::LineUnderCursor); - rc += cursor.selectedText(); - rc += newLine; - cursor.movePosition(QTextCursor::EndOfLine); // Mac needs it - cursor.movePosition(QTextCursor::NextCharacter); + const QString block = cursor.block().text(); + if (block.startsWith(QLatin1Char('\t'))) { // Don't wrap + rc += block + newLine; + } else { + forever { + cursor.select(QTextCursor::LineUnderCursor); + rc += cursor.selectedText(); + rc += newLine; + cursor.movePosition(QTextCursor::EndOfLine); // Mac needs it + if (cursor.atBlockEnd()) + break; + cursor.movePosition(QTextCursor::NextCharacter); + } + } + cursor.movePosition(QTextCursor::NextBlock); } return rc; } -- GitLab