From 75bbecc534acb6613fb9aa4751db2dda7fdec2df Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 12 Jul 2022 14:46:06 +0530 Subject: [PATCH] Clear search histories in preferences should clear the fts dialog's search history as well --- src/calibre/gui2/actions/fts.py | 4 ++++ src/calibre/gui2/fts/dialog.py | 3 +++ src/calibre/gui2/fts/search.py | 6 ++++++ src/calibre/gui2/preferences/search.py | 6 +++++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/actions/fts.py b/src/calibre/gui2/actions/fts.py index e67f47f2da..8e73fd2080 100644 --- a/src/calibre/gui2/actions/fts.py +++ b/src/calibre/gui2/actions/fts.py @@ -31,3 +31,7 @@ class FullTextSearchAction(InterfaceAction): def library_changed(self, db): if self._dialog is not None: self._dialog.library_changed() + + def clear_search_history(self): + if self._dialog is not None: + self._dialog.clear_search_history() diff --git a/src/calibre/gui2/fts/dialog.py b/src/calibre/gui2/fts/dialog.py index fa386d2aea..26f44ff026 100644 --- a/src/calibre/gui2/fts/dialog.py +++ b/src/calibre/gui2/fts/dialog.py @@ -96,6 +96,9 @@ class FTSDialog(Dialog): self.scan_status.startup() self.results_panel.on_show() + def clear_search_history(self): + self.results_panel.clear_history() + if __name__ == '__main__': from calibre.gui2 import Application diff --git a/src/calibre/gui2/fts/search.py b/src/calibre/gui2/fts/search.py index c677fc9deb..550ac02bd9 100644 --- a/src/calibre/gui2/fts/search.py +++ b/src/calibre/gui2/fts/search.py @@ -497,6 +497,9 @@ class SearchInputPanel(QWidget): self.layout().addLayout(v2) + def clear_history(self): + self.search_box.clear_history() + def start(self): self.pi.start() @@ -777,6 +780,9 @@ class ResultsPanel(QWidget): if st is not None: s.restoreState(st) + def clear_history(self): + self.sip.clear_history() + def remove_book_from_results(self, book_id): self.results_view.m.remove_book(book_id) diff --git a/src/calibre/gui2/preferences/search.py b/src/calibre/gui2/preferences/search.py index af5f4e1720..17ca258514 100644 --- a/src/calibre/gui2/preferences/search.py +++ b/src/calibre/gui2/preferences/search.py @@ -253,12 +253,16 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): for key in ( 'bulk_edit_search_for', 'bulk_edit_replace_with', 'viewer-highlights-search-panel-expression', - 'viewer-search-panel-expression', + 'viewer-search-panel-expression', 'library-fts-search-box', ): history.set('lineedit_history_' + key, []) from calibre.gui2.viewer.config import vprefs for k in ('search', 'highlights'): vprefs.set(f'saved-{k}-settings', {}) + from calibre.gui2.ui import get_gui + gui = get_gui() + if gui is not None: + gui.iactions['Full Text Search'].clear_search_history() if __name__ == '__main__':