From 517d229e081d3574d9f5d7a75e22f239ebc39c81 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 2 Feb 2023 20:50:55 +0530 Subject: [PATCH] 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) --- src/pyj/read_book/overlay.pyj | 4 ++-- src/pyj/read_book/view.pyj | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/pyj/read_book/overlay.pyj b/src/pyj/read_book/overlay.pyj index a7563ca603..0890e18a6c 100644 --- a/src/pyj/read_book/overlay.pyj +++ b/src/pyj/read_book/overlay.pyj @@ -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() ) diff --git a/src/pyj/read_book/view.pyj b/src/pyj/read_book/view.pyj index 4aec340452..293887d55f 100644 --- a/src/pyj/read_book/view.pyj +++ b/src/pyj/read_book/view.pyj @@ -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