Edit book: Text search: Fix searching for a single character backwards not working

This commit is contained in:
Kovid Goyal 2019-06-01 07:57:18 +05:30
parent 36604c52ee
commit 64141ab21f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 4 additions and 2 deletions

View File

@ -733,12 +733,14 @@ class Smarts(NullSmarts):
return 'complete_names', (names_type, doc_name, c.root), query return 'complete_names', (names_type, doc_name, c.root), query
def find_text(self, pat, cursor): def find_text(self, pat, cursor, reverse):
from calibre.gui2.tweak_book.text_search import find_text_in_chunks from calibre.gui2.tweak_book.text_search import find_text_in_chunks
chunks = [] chunks = []
cstart = min(cursor.position(), cursor.anchor()) cstart = min(cursor.position(), cursor.anchor())
cend = max(cursor.position(), cursor.anchor()) cend = max(cursor.position(), cursor.anchor())
if reverse:
cend -= 1
c = QTextCursor(cursor) c = QTextCursor(cursor)
c.setPosition(cstart) c.setPosition(cstart)
block = c.block() block = c.block()

View File

@ -503,7 +503,7 @@ class TextEdit(PlainTextEdit):
c.movePosition(pos, c.KeepAnchor) c.movePosition(pos, c.KeepAnchor)
if hasattr(self.smarts, 'find_text'): if hasattr(self.smarts, 'find_text'):
self.highlighter.join() self.highlighter.join()
found, start, end = self.smarts.find_text(pat, c) found, start, end = self.smarts.find_text(pat, c, reverse)
if not found: if not found:
return False return False
else: else: