mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-08-11 09:13:57 -04:00
Get quickview working
This commit is contained in:
parent
fa716c903c
commit
b21e8de0a4
@ -28,17 +28,15 @@ def get_quickview_action_plugin():
|
|||||||
class ShowQuickviewAction(InterfaceAction):
|
class ShowQuickviewAction(InterfaceAction):
|
||||||
|
|
||||||
name = 'Quickview'
|
name = 'Quickview'
|
||||||
action_spec = (_('Quickview'), 'quickview.png', None, None)
|
action_spec = (_('Quickview'), 'quickview.png', _('Toggle Quickview'), 'Q')
|
||||||
dont_add_to = frozenset(('context-menu-device',))
|
dont_add_to = frozenset(('context-menu-device',))
|
||||||
action_type = 'current'
|
action_type = 'current'
|
||||||
|
|
||||||
current_instance = None
|
current_instance = None
|
||||||
|
|
||||||
def genesis(self):
|
def genesis(self):
|
||||||
self.gui.keyboard.register_shortcut('Toggle Quickview', _('Toggle Quickview'),
|
self.menuless_qaction.changed.connect(self.update_layout_button)
|
||||||
description=_('Open/close the Quickview panel/window'),
|
self.qaction.triggered.connect(self.toggle_quick_view)
|
||||||
default_keys=('Q',), action=self.qaction,
|
|
||||||
group=self.action_spec[0])
|
|
||||||
self.focus_action = QAction(self.gui)
|
self.focus_action = QAction(self.gui)
|
||||||
self.gui.addAction(self.focus_action)
|
self.gui.addAction(self.focus_action)
|
||||||
self.gui.keyboard.register_shortcut('Focus To Quickview', _('Focus to Quickview'),
|
self.gui.keyboard.register_shortcut('Focus To Quickview', _('Focus to Quickview'),
|
||||||
@ -73,13 +71,26 @@ class ShowQuickviewAction(InterfaceAction):
|
|||||||
group=self.action_spec[0])
|
group=self.action_spec[0])
|
||||||
self.search_action.triggered.connect(self.search_quickview)
|
self.search_action.triggered.connect(self.search_quickview)
|
||||||
|
|
||||||
|
def update_layout_button(self):
|
||||||
|
self.qv_button.update_shortcut(self.menuless_qaction)
|
||||||
|
|
||||||
|
def toggle_quick_view(self):
|
||||||
|
if self.current_instance and not self.current_instance.is_closed:
|
||||||
|
self._hide_quickview()
|
||||||
|
else:
|
||||||
|
self._show_quickview()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
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 initialization_complete(self):
|
def initialization_complete(self):
|
||||||
set_quickview_action_plugin(self)
|
set_quickview_action_plugin(self)
|
||||||
self.qv_button.update_shortcut(self.qaction)
|
self.qv_button.toggled.connect(self.toggle_quick_view)
|
||||||
|
|
||||||
|
def show_on_startup(self):
|
||||||
|
self.gui.hide_panel('quick_view')
|
||||||
|
self._show_quickview()
|
||||||
|
|
||||||
def _hide_quickview(self):
|
def _hide_quickview(self):
|
||||||
'''
|
'''
|
||||||
@ -103,7 +114,9 @@ class ShowQuickviewAction(InterfaceAction):
|
|||||||
_('Quickview is not available for books '
|
_('Quickview is not available for books '
|
||||||
'on the device.')).exec()
|
'on the device.')).exec()
|
||||||
return
|
return
|
||||||
|
self.qv_button.blockSignals(True)
|
||||||
self.qv_button.set_state_to_hide()
|
self.qv_button.set_state_to_hide()
|
||||||
|
self.qv_button.blockSignals(False)
|
||||||
index = self.gui.library_view.currentIndex()
|
index = self.gui.library_view.currentIndex()
|
||||||
self.current_instance = Quickview(self.gui, index, self.qaction.shortcut(),
|
self.current_instance = Quickview(self.gui, index, self.qaction.shortcut(),
|
||||||
focus_booklist_shortcut=self.focus_bl_action.shortcut())
|
focus_booklist_shortcut=self.focus_bl_action.shortcut())
|
||||||
|
@ -320,6 +320,8 @@ class CentralContainer(QWidget):
|
|||||||
def layout_button_toggled(self):
|
def layout_button_toggled(self):
|
||||||
if not self.ignore_button_toggles:
|
if not self.ignore_button_toggles:
|
||||||
b = self.sender()
|
b = self.sender()
|
||||||
|
if b.name == 'quick_view':
|
||||||
|
return
|
||||||
self.set_visibility_of(b.name, b.isChecked())
|
self.set_visibility_of(b.name, b.isChecked())
|
||||||
self.relayout()
|
self.relayout()
|
||||||
|
|
||||||
|
@ -863,9 +863,10 @@ class Quickview(QDialog, Ui_Quickview):
|
|||||||
self._reject()
|
self._reject()
|
||||||
|
|
||||||
def _reject(self):
|
def _reject(self):
|
||||||
|
gui = self.gui
|
||||||
if self.is_pane:
|
if self.is_pane:
|
||||||
self.gui.hide_panel('quick_view')
|
gui.hide_panel('quick_view')
|
||||||
self.gui.library_view.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
|
gui.library_view.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
|
||||||
self._close()
|
self._close()
|
||||||
QDialog.reject(self)
|
QDialog.reject(self)
|
||||||
|
|
||||||
|
@ -437,6 +437,8 @@ 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:
|
||||||
|
self.iactions['Quickview'].show_on_startup()
|
||||||
self.listener.start_listening()
|
self.listener.start_listening()
|
||||||
self.start_smartdevice()
|
self.start_smartdevice()
|
||||||
# Collect cycles now
|
# Collect cycles now
|
||||||
|
Loading…
x
Reference in New Issue
Block a user