From dc40d764b32ce9a3c61df7eb10eb7b30424182e5 Mon Sep 17 00:00:00 2001 From: mae <qt-info@nokia.com> Date: Thu, 1 Oct 2009 12:40:08 +0200 Subject: [PATCH] small refactoring to avoid dependency on a current qt fix --- src/plugins/texteditor/basetexteditor.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index bef38dbc362..c3881752301 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -4624,18 +4624,10 @@ void BaseTextEditor::insertFromMimeData(const QMimeData *source) || text.endsWith(QChar::ParagraphSeparator) || text.endsWith(QLatin1Char('\r'))); - QTextCursor unnecessaryWhitespace; - if (hasFinalNewline) { - // since we'll add a final newline, preserve current line's indentation + if (hasFinalNewline) // since we'll add a final newline, preserve current line's indentation cursor.setPosition(cursor.block().position()); - } else { - unnecessaryWhitespace = cursor; - int pos = cursor.position(); - // construct the selection in a way that it will not expand when the cursor position moves - unnecessaryWhitespace.movePosition(QTextCursor::StartOfBlock); - unnecessaryWhitespace.setPosition(pos, QTextCursor::KeepAnchor); - } + int cursorPosition = cursor.position(); cursor.insertText(text); int reindentBlockEnd = cursor.blockNumber() - (hasFinalNewline?1:0); @@ -4643,8 +4635,12 @@ void BaseTextEditor::insertFromMimeData(const QMimeData *source) if (reindentBlockStart < reindentBlockEnd || (reindentBlockStart == reindentBlockEnd && (!insertAtBeginningOfLine || hasFinalNewline))) { - if (insertAtBeginningOfLine && !hasFinalNewline) + if (insertAtBeginningOfLine && !hasFinalNewline) { + QTextCursor unnecessaryWhitespace = cursor; + unnecessaryWhitespace.setPosition(cursorPosition); + unnecessaryWhitespace.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor); unnecessaryWhitespace.removeSelectedText(); + } QTextCursor c = cursor; c.setPosition(cursor.document()->findBlockByNumber(reindentBlockStart).position()); c.setPosition(cursor.document()->findBlockByNumber(reindentBlockEnd).position(), -- GitLab