diff options
author | David Schulz <david.schulz@qt.io> | 2021-11-08 11:10:32 +0100 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2021-11-08 10:42:49 +0000 |
commit | 33122b564a34cb0cd73c1c4f3e22efefbaef2c02 (patch) | |
tree | e1c09820677517f73fd62d5ce721a479cf5faa4e | |
parent | 6077bde638c481df9135e045370e571178df15ef (diff) |
Editor: prevent endless loop for empty search results
Fixes: QTCREATORBUG-26536
Change-Id: Ia49559c5b340085ef8371d8d90bda26bb6d728bb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r-- | src/plugins/coreplugin/find/basetextfind.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/coreplugin/find/basetextfind.cpp b/src/plugins/coreplugin/find/basetextfind.cpp index ce21336223..12afaf8a65 100644 --- a/src/plugins/coreplugin/find/basetextfind.cpp +++ b/src/plugins/coreplugin/find/basetextfind.cpp @@ -421,10 +421,13 @@ QTextCursor BaseTextFind::findOne(const QRegularExpression &expr, QTextCursor found = document()->find(expr, from, options); while (!found.isNull() && !inScope(found)) { if (!found.hasSelection()) { - from = found; - found.movePosition(options & QTextDocument::FindBackward - ? QTextCursor::PreviousCharacter - : QTextCursor::NextCharacter); + if (found.movePosition(options & QTextDocument::FindBackward + ? QTextCursor::PreviousCharacter + : QTextCursor::NextCharacter)) { + from = found; + } else { + return {}; + } } else { from.setPosition(options & QTextDocument::FindBackward ? found.selectionStart() : found.selectionEnd()); |