Fix undocked Quickview dialog not being restored at startup. Fixes #2060314 [Quickview panel on Calibre start](https://bugs.launchpad.net/calibre/+bug/2060314)

This commit is contained in:
Kovid Goyal 2024-04-16 19:04:57 +05:30
parent 3c9dc1bcd9
commit 4183627a7d
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 11 additions and 2 deletions

View File

@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
from qt.core import QAction, QTimer 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.actions import InterfaceAction
from calibre.gui2.dialogs.quickview import Quickview from calibre.gui2.dialogs.quickview import Quickview
@ -83,6 +83,15 @@ class ShowQuickviewAction(InterfaceAction):
def qv_button(self): def qv_button(self):
return self.gui.layout_container.quick_view_button 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): def initialization_complete(self):
set_quickview_action_plugin(self) set_quickview_action_plugin(self)
self.qv_button.toggled.connect(self.toggle_quick_view) self.qv_button.toggled.connect(self.toggle_quick_view)

View File

@ -444,7 +444,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
def post_initialize_actions(self): def post_initialize_actions(self):
# Various post-initialization actions after an event loop tick # 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.iactions['Quickview'].show_on_startup()
self.listener.start_listening() self.listener.start_listening()
self.start_smartdevice() self.start_smartdevice()