diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
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) |
