Clicking search in book in selection bar should actually trigger the search not just fill the search box

This commit is contained in:
Kovid Goyal 2020-09-04 22:23:34 +05:30
parent 5059025a18
commit 374edd1ff7
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
6 changed files with 15 additions and 8 deletions

View File

@ -680,6 +680,9 @@ class SearchPanel(QWidget): # {{{
def find_next_requested(self, previous): def find_next_requested(self, previous):
self.results.find_next(previous) self.results.find_next(previous)
def trigger(self):
self.search_input.find_next()
def do_show_search_result(self, sr): def do_show_search_result(self, sr):
self.show_search_result.emit(sr.for_js) self.show_search_result.emit(sr.for_js)

View File

@ -292,11 +292,13 @@ class EbookViewer(MainWindow):
def toggle_toc(self): def toggle_toc(self):
self.toc_dock.setVisible(not self.toc_dock.isVisible()) self.toc_dock.setVisible(not self.toc_dock.isVisible())
def show_search(self, text): def show_search(self, text, trigger=False):
self.search_dock.setVisible(True) self.search_dock.setVisible(True)
self.search_dock.activateWindow() self.search_dock.activateWindow()
self.search_dock.raise_() self.search_dock.raise_()
self.search_widget.focus_input(text) self.search_widget.focus_input(text)
if trigger:
self.search_widget.trigger()
def search_results_count_changed(self, num=-1): def search_results_count_changed(self, num=-1):
if num < 0: if num < 0:

View File

@ -241,7 +241,7 @@ class ViewerBridge(Bridge):
new_bookmark = from_js(object) new_bookmark = from_js(object)
toggle_inspector = from_js() toggle_inspector = from_js()
toggle_lookup = from_js(object) toggle_lookup = from_js(object)
show_search = from_js(object) show_search = from_js(object, object)
search_result_not_found = from_js(object) search_result_not_found = from_js(object)
find_next = from_js(object) find_next = from_js(object)
quit = from_js() quit = from_js()
@ -431,7 +431,7 @@ class WebView(RestartingWebEngineView):
cfi_changed = pyqtSignal(object) cfi_changed = pyqtSignal(object)
reload_book = pyqtSignal() reload_book = pyqtSignal()
toggle_toc = pyqtSignal() toggle_toc = pyqtSignal()
show_search = pyqtSignal(object) show_search = pyqtSignal(object, object)
search_result_not_found = pyqtSignal(object) search_result_not_found = pyqtSignal(object)
find_next = pyqtSignal(object) find_next = pyqtSignal(object)
toggle_bookmarks = pyqtSignal() toggle_bookmarks = pyqtSignal()

View File

@ -885,7 +885,7 @@ class SelectionBar:
self.view.overlay.show_word_actions(self.view.currently_showing.selection.text) self.view.overlay.show_word_actions(self.view.currently_showing.selection.text)
def book_search(self): def book_search(self):
self.view.show_search() self.view.show_search(True)
self.clear_selection() self.clear_selection()
def new_bookmark(self): def new_bookmark(self):

View File

@ -672,15 +672,17 @@ class View:
self.get_current_cfi('prepare-close', close_prepared) self.get_current_cfi('prepare-close', close_prepared)
def show_search(self): def show_search(self, trigger):
self.hide_overlays() self.hide_overlays()
text = self.currently_showing.selection.text text = self.currently_showing.selection.text
if runtime.is_standalone_viewer: if runtime.is_standalone_viewer:
ui_operations.show_search(text or '') ui_operations.show_search(text or '', trigger)
else: else:
if text: if text:
self.search_overlay.set_text(text) self.search_overlay.set_text(text)
self.search_overlay.show(text) self.search_overlay.show(text)
if trigger and text:
self.search_overlay.find_next()
def show_content_popup(self): def show_content_popup(self):
self.hide_overlays() self.hide_overlays()

View File

@ -330,8 +330,8 @@ if window is window.top:
to_python.toggle_inspector() to_python.toggle_inspector()
ui_operations.content_file_changed = def(name): ui_operations.content_file_changed = def(name):
to_python.content_file_changed(name) to_python.content_file_changed(name)
ui_operations.show_search = def(text): ui_operations.show_search = def(text, trigger):
to_python.show_search(text) to_python.show_search(text, v'!!trigger')
ui_operations.find_next = def(previous): ui_operations.find_next = def(previous):
to_python.find_next(previous) to_python.find_next(previous)
ui_operations.reset_interface = def(): ui_operations.reset_interface = def():