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