From d9aa870e5d509cc7309ab82dd102a937ab58613a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Thu, 9 Feb 2017 04:36:04 -0500 Subject: Imported Upstream version 3.1.1+dfsg1 --- SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp') diff --git a/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp b/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp index ebdf2c0..7e5c2ec 100644 --- a/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp @@ -69,6 +69,9 @@ int SearchTextLocator::getStartPosition() const void SearchTextLocator::setStartPosition(int value) { + if (ignoreCursorMovements) + return; + startPosition = value; initialStartPosition = value; afterDocPositionSwitch = false; @@ -148,11 +151,18 @@ void SearchTextLocator::replaceCurrent() if (lastMatchStart == -1 || lastMatchEnd == -1) return; + ignoreCursorMovements = true; + QTextCursor cursor(document); cursor.setPosition(lastMatchStart); cursor.setPosition(lastMatchEnd, QTextCursor::KeepAnchor); cursor.removeSelectedText(); cursor.insertText(replaceString); + + ignoreCursorMovements = false; + + // Adjust further lookups according to replaced lenght change. + startPosition += replaceString.length() - lookupString.length(); } bool SearchTextLocator::find(QTextDocument::FindFlags flags) -- cgit v1.2.3