Edit Book: Allow easily removing items from the popup menu for the 'Insert tag' button

This commit is contained in:
Kovid Goyal 2015-10-08 10:53:41 +05:30
parent eff9a695e1
commit 6f0403bffe

View File

@ -221,8 +221,14 @@ class Editor(QMainWindow):
def _build_insert_tag_button_menu(self): def _build_insert_tag_button_menu(self):
m = self.insert_tag_menu m = self.insert_tag_menu
m.clear() m.clear()
for name in tprefs['insert_tag_mru']: names = tprefs['insert_tag_mru']
for name in names:
m.addAction(name, partial(self.insert_tag, name)) m.addAction(name, partial(self.insert_tag, name))
if names:
m.addSeparator()
m = m.addMenu(_('Remove from this menu'))
for name in names:
m.addAction(name, partial(self.remove_insert_tag, name))
def insert_tag(self, name): def insert_tag(self, name):
self.editor.insert_tag(name) self.editor.insert_tag(name)
@ -235,6 +241,15 @@ class Editor(QMainWindow):
tprefs['insert_tag_mru'] = mru tprefs['insert_tag_mru'] = mru
self._build_insert_tag_button_menu() self._build_insert_tag_button_menu()
def remove_insert_tag(self, name):
mru = tprefs['insert_tag_mru']
try:
mru.remove(name)
except ValueError:
pass
tprefs['insert_tag_mru'] = mru
self._build_insert_tag_button_menu()
def set_request_completion(self, callback=None, doc_name=None): def set_request_completion(self, callback=None, doc_name=None):
self.editor.request_completion = callback self.editor.request_completion = callback
self.editor.completion_doc_name = doc_name self.editor.completion_doc_name = doc_name