diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 5efd33bfb4..f7e412a8cd 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -898,7 +898,7 @@ class ActionFetchNews(InterfaceActionBase): class ActionQuickview(InterfaceActionBase): - name = 'Show Quickview' + name = 'Quickview' actual_plugin = 'calibre.gui2.actions.show_quickview:ShowQuickviewAction' description = _('Show a list of related books quickly') diff --git a/src/calibre/gui2/actions/show_quickview.py b/src/calibre/gui2/actions/show_quickview.py index f2b2da88e5..dcf49b884c 100644 --- a/src/calibre/gui2/actions/show_quickview.py +++ b/src/calibre/gui2/actions/show_quickview.py @@ -54,14 +54,18 @@ def get_quickview_action_plugin(): class ShowQuickviewAction(InterfaceAction): - name = 'Show Quickview' - action_spec = (_('Show Quickview'), 'quickview.png', None, _('Q')) + name = 'Quickview' + action_spec = (_('Quickview'), 'quickview.png', None, None) dont_add_to = frozenset(['context-menu-device']) action_type = 'current' current_instance = None def genesis(self): + self.gui.keyboard.register_shortcut('Toggle Quickview', _('Toggle Quickview'), + description=_('Open/close the Quickview panel/window'), + default_keys=('Q',), action=self.qaction, + group=self.action_spec[0]) self.focus_action = QAction(self.gui) self.gui.addAction(self.focus_action) self.gui.keyboard.register_shortcut('Focus To Quickview', _('Focus to Quickview'), @@ -70,6 +74,15 @@ class ShowQuickviewAction(InterfaceAction): group=self.action_spec[0]) self.focus_action.triggered.connect(self.focus_quickview) + self.focus_bl_action = QAction(self.gui) + self.gui.addAction(self.focus_bl_action) + self.gui.keyboard.register_shortcut('Focus from Quickview', + _('Focus from Quickview to the book list'), + description=_('Move the focus from Quickview to the book list'), + default_keys=('Shift+Alt+Q',), action=self.focus_bl_action, + group=self.action_spec[0]) + self.focus_bl_action.triggered.connect(self.focus_booklist) + self.search_action = QAction(self.gui) self.gui.addAction(self.search_action) self.gui.keyboard.register_shortcut('Search from Quickview', _('Search from Quickview'), @@ -116,6 +129,7 @@ class ShowQuickviewAction(InterfaceAction): def set_search_shortcut(self): if self.current_instance and not self.current_instance.is_closed: + self.current_instance.addAction(self.focus_bl_action) self.current_instance.set_shortcuts(self.search_action.shortcut().toString(), self.menuless_qaction.shortcut().toString()) @@ -160,6 +174,10 @@ class ShowQuickviewAction(InterfaceAction): else: self.current_instance.set_focus() + def focus_booklist(self): + self.gui.activateWindow() + self.gui.library_view.setFocus() + def search_quickview(self): if not self.current_instance or self.current_instance.is_closed: return diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index 3bd8e9c834..90230b04a8 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -166,7 +166,7 @@ class LibraryWidget(Splitter): # {{{ parent.quickview_splitter.addWidget(stack) l = QVBoxLayout() - l.setContentsMargins(0, 0, 0, 0) + l.setContentsMargins(4, 0, 0, 0) quickview_widget.setLayout(l) parent.quickview_splitter.addWidget(quickview_widget) parent.quickview_splitter.hide_quickview_widget() @@ -571,8 +571,10 @@ class LayoutMixin(object): # {{{ button_order = ('sb', 'tb', 'cb', 'gv', 'qv', 'bd') # }}} - self.qv = find_plugin('Show Quickview') - if self.qv: + # This must use the base method to find the plugin because it hasn't + # been fully initialized yet + self.qv = find_plugin('Quickview') + if self.qv and self.qv.actual_plugin_: self.qv = self.qv.actual_plugin_ self.status_bar = StatusBar(self)