Content server viewer: Fix reload book not actually reloading until the browser is also refreshed. Fixes #2004197 [content server - viewer does not show updated book/format](https://bugs.launchpad.net/calibre/+bug/2004197)

This commit is contained in:
Kovid Goyal 2023-02-02 20:50:55 +05:30
parent 97d80078b4
commit 517d229e08
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 13 additions and 6 deletions

View File

@ -120,7 +120,7 @@ class DeleteBook: # {{{
def delete_book(self):
if runtime.is_standalone_viewer:
if self.reload_book:
ui_operations.reload_book()
self.overlay.view.reload_book()
return
self.show_working()
view = self.overlay.view
@ -130,7 +130,7 @@ class DeleteBook: # {{{
view.ui.show_error(_('Failed to delete book'), _('Failed to delete book from local storage, click "Show details" for more information.'), errmsg)
else:
if self.reload_book:
ui_operations.reload_book()
self.overlay.view.reload_book()
else:
home()
)

View File

@ -527,7 +527,7 @@ class View:
elif data.name is 'toggle_read_aloud':
self.toggle_read_aloud()
elif data.name is 'reload_book':
ui_operations.reload_book()
self.reload_book()
elif data.name is 'sync_book':
self.overlay.sync_book()
elif data.name is 'next_section':
@ -893,6 +893,14 @@ class View:
'library_id': self.book.key[0], 'book_id': self.book.key[1] + '', 'close_action': 'book_list',
}, 'book_details'))
def clear_book_resource_caches(self):
self.loaded_resources = {}
self.content_popup_overlay.loaded_resources = {}
def reload_book(self):
self.clear_book_resource_caches()
ui_operations.reload_book()
def display_book(self, book, initial_position, is_redisplay):
self.hide_overlays()
self.iframe.focus()
@ -902,10 +910,9 @@ class View:
if self.book:
self.iframe_wrapper.reset()
self.content_popup_overlay.reset()
self.loaded_resources = {}
self.content_popup_overlay.loaded_resources = {}
self.clear_book_resource_caches()
self.timers.start_book(book)
self.search_overlay.clear_caches(book)
self.search_overlay.clear_caches(book) # could be a reload
unkey = username_key(get_interface_data().username)
self.book = current_book.book = book
hl = None