From 4183627a7dad098e66d4c73f4cfef57b09af69d6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 16 Apr 2024 19:04:57 +0530 Subject: [PATCH] Fix undocked Quickview dialog not being restored at startup. Fixes #2060314 [Quickview panel on Calibre start](https://bugs.launchpad.net/calibre/+bug/2060314) --- src/calibre/gui2/actions/show_quickview.py | 11 ++++++++++- src/calibre/gui2/ui.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/actions/show_quickview.py b/src/calibre/gui2/actions/show_quickview.py index a0f4fe5ee6..fcfe469ccb 100644 --- a/src/calibre/gui2/actions/show_quickview.py +++ b/src/calibre/gui2/actions/show_quickview.py @@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en' from qt.core import QAction, QTimer -from calibre.gui2 import error_dialog +from calibre.gui2 import error_dialog, gprefs from calibre.gui2.actions import InterfaceAction from calibre.gui2.dialogs.quickview import Quickview @@ -83,6 +83,15 @@ class ShowQuickviewAction(InterfaceAction): def qv_button(self): return self.gui.layout_container.quick_view_button + def shutting_down(self): + is_open = True + if not self.current_instance or self.current_instance.is_closed: + is_open = False + gprefs.set('qv_open_at_shutdown', is_open) + + def needs_show_on_startup(self): + return gprefs.get('qv_open_at_shutdown', False) + def initialization_complete(self): set_quickview_action_plugin(self) self.qv_button.toggled.connect(self.toggle_quick_view) diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 8e923d3cb7..c7189de7e2 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -444,7 +444,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ def post_initialize_actions(self): # Various post-initialization actions after an event loop tick - if self.layout_container.is_visible.quick_view: + if self.layout_container.is_visible.quick_view or self.iactions['Quickview'].needs_show_on_startup(): self.iactions['Quickview'].show_on_startup() self.listener.start_listening() self.start_smartdevice()