diff --git a/src/calibre/gui2/store/search/search.py b/src/calibre/gui2/store/search/search.py index 1b373aadbf..f2f9a3aa84 100644 --- a/src/calibre/gui2/store/search/search.py +++ b/src/calibre/gui2/store/search/search.py @@ -21,6 +21,13 @@ from calibre.gui2.store.search.search_ui import Ui_Dialog from calibre.utils.filenames import ascii_filename +def add_items_to_context_menu(self, menu): + menu.addSeparator() + ac = menu.addAction(_('Clear search &history')) + ac.triggered.connect(self.clear_history) + return menu + + class SearchDialog(QDialog, Ui_Dialog): SEARCH_TEXT = _('&Search') @@ -36,6 +43,9 @@ class SearchDialog(QDialog, Ui_Dialog): self.search_title.initialize('store_search_search_title') self.search_author.initialize('store_search_search_author') self.search_edit.initialize('store_search_search') + self.search_title.add_items_to_context_menu = add_items_to_context_menu + self.search_author.add_items_to_context_menu = add_items_to_context_menu + self.search_edit.add_items_to_context_menu = add_items_to_context_menu # Loads variables that store various settings. # This needs to be called soon in __init__ because diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index be60c4a0d2..562501a085 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -490,6 +490,8 @@ class LineEditECM: # {{{ menu = self.createStandardContextMenu() menu.addSeparator() self.create_change_case_menu(menu) + if callable(getattr(self, 'add_items_to_context_menu', None)): + menu = self.add_items_to_context_menu(self, menu) menu.exec(event.globalPos()) def modify_case_operation(self, func):