From abe47f1de615ed4d0094b944c65b1fcb7d3b99df Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 9 Jul 2017 14:21:00 +0200 Subject: [PATCH 1/3] 1) Add a bit of space to the left edge for when the tag browser isn't open 2) Make the name of the plugin "Quickview". 3) Make the Q shortcut "Toggle Quickview" instead of "Show Quickview" --- src/calibre/customize/builtins.py | 2 +- src/calibre/gui2/actions/show_quickview.py | 8 ++++++-- src/calibre/gui2/init.py | 8 +++++--- 3 files changed, 12 insertions(+), 6 deletions(-) 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..0a36c760c8 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'), 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) From 3600a12d719caf5fc2e2df44761d745e7a72b82a Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 9 Jul 2017 14:53:06 +0200 Subject: [PATCH 2/3] Add an action and a shortcut to move the focus from quickview to the book list --- src/calibre/gui2/actions/show_quickview.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/calibre/gui2/actions/show_quickview.py b/src/calibre/gui2/actions/show_quickview.py index 0a36c760c8..deae14e082 100644 --- a/src/calibre/gui2/actions/show_quickview.py +++ b/src/calibre/gui2/actions/show_quickview.py @@ -74,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 docked Quickview to the book list'), + description=_('Move the focus from docked Quickview to the book list'), + default_keys=('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'), @@ -164,6 +173,9 @@ class ShowQuickviewAction(InterfaceAction): else: self.current_instance.set_focus() + def focus_booklist(self): + self.gui.library_view.setFocus() + def search_quickview(self): if not self.current_instance or self.current_instance.is_closed: return From 428e72eb661d23d05c5cb6b0ca20c948c2c43973 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 9 Jul 2017 17:47:14 +0200 Subject: [PATCH 3/3] Make the focus-back-to-booklist action work when undocked --- src/calibre/gui2/actions/show_quickview.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/actions/show_quickview.py b/src/calibre/gui2/actions/show_quickview.py index deae14e082..dcf49b884c 100644 --- a/src/calibre/gui2/actions/show_quickview.py +++ b/src/calibre/gui2/actions/show_quickview.py @@ -77,9 +77,9 @@ class ShowQuickviewAction(InterfaceAction): self.focus_bl_action = QAction(self.gui) self.gui.addAction(self.focus_bl_action) self.gui.keyboard.register_shortcut('Focus from Quickview', - _('Focus from docked Quickview to the book list'), - description=_('Move the focus from docked Quickview to the book list'), - default_keys=('Alt+Q',), action=self.focus_bl_action, + _('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) @@ -129,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()) @@ -174,6 +175,7 @@ class ShowQuickviewAction(InterfaceAction): self.current_instance.set_focus() def focus_booklist(self): + self.gui.activateWindow() self.gui.library_view.setFocus() def search_quickview(self):