From c264cf7a21fa48f3d4c2b05e2d28f0f9138292de Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 8 Oct 2019 19:23:08 +0530 Subject: [PATCH] Viewer: Dont flash the home page before loading a book if a book has been specified --- src/calibre/gui2/viewer/ui.py | 1 + src/calibre/gui2/viewer/web_view.py | 3 ++- src/pyj/viewer-main.pyj | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/viewer/ui.py b/src/calibre/gui2/viewer/ui.py index dd37b8bc77..b8ffe40d34 100644 --- a/src/calibre/gui2/viewer/ui.py +++ b/src/calibre/gui2/viewer/ui.py @@ -281,6 +281,7 @@ class EbookViewer(MainWindow): self.load_ebook(entry['pathtoebook']) def load_ebook(self, pathtoebook, open_at=None, reload_book=False): + self.web_view.show_home_page_on_ready = False if open_at: self.pending_open_at = open_at self.setWindowTitle(_('Loading book') + '… — {}'.format(self.base_window_title)) diff --git a/src/calibre/gui2/viewer/web_view.py b/src/calibre/gui2/viewer/web_view.py index 70be45e97b..7b6ece2509 100644 --- a/src/calibre/gui2/viewer/web_view.py +++ b/src/calibre/gui2/viewer/web_view.py @@ -385,6 +385,7 @@ class WebView(RestartingWebEngineView): self.dead_renderer_error_shown = False self.render_process_failed.connect(self.render_process_died) w = QApplication.instance().desktop().availableGeometry(self).width() + self.show_home_page_on_ready = True self._size_hint = QSize(int(w/3), int(w/2)) self._page = WebPage(self) self.bridge.bridge_ready.connect(self.on_bridge_ready) @@ -467,7 +468,7 @@ class WebView(RestartingWebEngineView): fi = QFontInfo(f) self.bridge.create_view( vprefs['session_data'], QFontDatabase().families(), field_metadata.all_metadata(), - f.family(), '{}px'.format(fi.pixelSize())) + f.family(), '{}px'.format(fi.pixelSize()), self.show_home_page_on_ready) for func, args in iteritems(self.pending_bridge_ready_actions): getattr(self.bridge, func)(*args) diff --git a/src/pyj/viewer-main.pyj b/src/pyj/viewer-main.pyj index 4bbc835028..3714f9fdbf 100644 --- a/src/pyj/viewer-main.pyj +++ b/src/pyj/viewer-main.pyj @@ -188,7 +188,7 @@ def create_session_data(prefs): @from_python -def create_view(prefs, all_font_families, field_metadata, ui_font_family, ui_font_sz): +def create_view(prefs, all_font_families, field_metadata, ui_font_family, ui_font_sz, show_home_page_on_ready): nonlocal view runtime.all_font_families = all_font_families library_data.field_metadata = field_metadata @@ -197,7 +197,8 @@ def create_view(prefs, all_font_families, field_metadata, ui_font_family, ui_fon if view is None: create_session_data(prefs) view = View(document.getElementById('view')) - view.overlay.open_book(False) + if show_home_page_on_ready: + view.overlay.open_book(False) @from_python