diff --git a/src/calibre/gui2/viewer/search.py b/src/calibre/gui2/viewer/search.py index 089e3b7d86..7a2e2acdb3 100644 --- a/src/calibre/gui2/viewer/search.py +++ b/src/calibre/gui2/viewer/search.py @@ -332,6 +332,7 @@ class SearchInput(QWidget): # {{{ sb.initialize('viewer-{}-panel-expression'.format(panel_name)) sb.item_selected.connect(self.saved_search_selected) sb.history_saved.connect(self.history_saved) + sb.history_cleared.connect(self.history_cleared) sb.cleared.connect(self.cleared) sb.lineEdit().returnPressed.connect(self.find_next) h.addWidget(sb) @@ -388,6 +389,9 @@ class SearchInput(QWidget): # {{{ sss = {k: v for k, v in iteritems(sss) if k in history} vprefs['saved-{}-settings'.format(self.panel_name)] = sss + def history_cleared(self): + vprefs['saved-{}-settings'.format(self.panel_name)] = {} + def save_search_type(self): text = self.search_box.currentText() if text and not self.ignore_search_type_changes: diff --git a/src/calibre/gui2/viewer/widgets.py b/src/calibre/gui2/viewer/widgets.py index 3751a1cb9d..ce5a354b9d 100644 --- a/src/calibre/gui2/viewer/widgets.py +++ b/src/calibre/gui2/viewer/widgets.py @@ -112,6 +112,7 @@ class ResultsDelegate(QStyledItemDelegate): # {{{ class SearchBox(HistoryComboBox): # {{{ history_saved = pyqtSignal(object, object) + history_cleared = pyqtSignal() cleared = pyqtSignal() def __init__(self, parent=None): @@ -127,6 +128,10 @@ class SearchBox(HistoryComboBox): # {{{ self.history_saved.emit(self.text(), self.history) return ret + def clear_history(self): + super().clear_history() + self.history_cleared.emit() + def contextMenuEvent(self, event): menu = self.lineEdit().createStandardContextMenu() menu.addSeparator()