diff options
| author | 2017-02-09 04:36:04 -0500 | |
|---|---|---|
| committer | 2017-02-09 04:36:04 -0500 | |
| commit | d9aa870e5d509cc7309ab82dd102a937ab58613a (patch) | |
| tree | d92d03d76b5c390b335f1cfd761f1a0b59ec8496 /SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp | |
| parent | 68ee4cbcbe424b95969c70346283a9f217f63825 (diff) | |
Imported Upstream version 3.1.1+dfsg1upstream/3.1.1+dfsg1
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) |
