E-book viewer: Allow clearing list of recently opened books from the open button's popup menu itself. Fixes #2034760 [[Enhancement] E-book viewer: "Open e-book" toolbar button should have a "Clear recent list" item](https://bugs.launchpad.net/calibre/+bug/2034760)

This commit is contained in:
Kovid Goyal 2023-09-14 12:32:41 +05:30
parent 3b6e829d36
commit 48e4322131
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 11 additions and 4 deletions

View File

@ -328,6 +328,12 @@ class ActionsToolBar(ToolBar):
self.open_book_at_path.emit, path)) self.open_book_at_path.emit, path))
else: else:
self.web_view.remove_recently_opened(path) self.web_view.remove_recently_opened(path)
if len(m.actions()) > 0:
m.addSeparator()
m.addAction(_('Clear list of recently opened books'), self.clear_recently_opened)
def clear_recently_opened(self):
self.web_view.remove_recently_opened()
def on_view_created(self, data): def on_view_created(self, data):
self.default_color_schemes = data['default_color_schemes'] self.default_color_schemes = data['default_color_schemes']

View File

@ -748,5 +748,5 @@ class WebView(RestartingWebEngineView):
def repair_after_fullscreen_switch(self): def repair_after_fullscreen_switch(self):
self.execute_when_ready('repair_after_fullscreen_switch') self.execute_when_ready('repair_after_fullscreen_switch')
def remove_recently_opened(self, path): def remove_recently_opened(self, path=''):
self.generic_action('remove-recently-opened', {'path': path}) self.generic_action('remove-recently-opened', {'path': path})

View File

@ -81,6 +81,7 @@ def remove_recently_opened(path):
sd = get_session_data() sd = get_session_data()
rl = sd.get('standalone_recently_opened') rl = sd.get('standalone_recently_opened')
newl = v'[]' newl = v'[]'
if path:
for entry in rl: for entry in rl:
if entry.key is not path: if entry.key is not path:
newl.push(entry) newl.push(entry)