From 7a9d3a2c796fb9ad4ee4c87d8447b5200d8d0b68 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 30 Jul 2017 11:13:39 +0200 Subject: [PATCH] Quickview: add a "Refresh" action that is enabled when QV is locked. --- src/calibre/gui2/actions/show_quickview.py | 10 +++++++++ src/calibre/gui2/dialogs/quickview.py | 13 ++++++++++- src/calibre/gui2/dialogs/quickview.ui | 26 ++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/actions/show_quickview.py b/src/calibre/gui2/actions/show_quickview.py index a1d8bc0328..279b91db60 100644 --- a/src/calibre/gui2/actions/show_quickview.py +++ b/src/calibre/gui2/actions/show_quickview.py @@ -87,6 +87,15 @@ class ShowQuickviewAction(InterfaceAction): group=self.action_spec[0]) self.focus_bl_action.triggered.connect(self.focus_booklist) + self.focus_refresh_action = QAction(self.gui) + self.gui.addAction(self.focus_refresh_action) + self.gui.keyboard.register_shortcut('Refresh from Quickview', + _('Refresh Quickview'), + description=_('Refresh the information shown in the Quickview pane'), + action=self.focus_refresh_action, + group=self.action_spec[0]) + self.focus_refresh_action.triggered.connect(self.refill_quickview) + self.search_action = QAction(self.gui) self.gui.addAction(self.search_action) self.gui.keyboard.register_shortcut('Search from Quickview', _('Search from Quickview'), @@ -96,6 +105,7 @@ class ShowQuickviewAction(InterfaceAction): self.search_action.triggered.connect(self.search_quickview) self.search_action.changed.connect(self.set_search_shortcut) self.menuless_qaction.changed.connect(self.set_search_shortcut) + self.qv_button = QuickviewButton(self.gui, self) def initialization_complete(self): diff --git a/src/calibre/gui2/dialogs/quickview.py b/src/calibre/gui2/dialogs/quickview.py index 34c4fb2671..5c27930222 100644 --- a/src/calibre/gui2/dialogs/quickview.py +++ b/src/calibre/gui2/dialogs/quickview.py @@ -193,9 +193,11 @@ class Quickview(QDialog, Ui_Quickview): self.books_table.installEventFilter(focus_filter) self.close_button.clicked.connect(self.close_button_clicked) + self.refresh_button.clicked.connect(self.refill) self.tab_order_widgets = [self.items, self.books_table, self.lock_qv, - self.dock_button, self.search_button, self.close_button] + self.dock_button, self.search_button, self.refresh_button, + self.close_button] for idx,widget in enumerate(self.tab_order_widgets): widget.installEventFilter(WidgetTabFilter(widget, idx, self.tab_pressed_signal)) @@ -239,8 +241,10 @@ class Quickview(QDialog, Ui_Quickview): self.dock_button.setText(_('Undock')) self.dock_button.setToolTip(_('Pop up the quickview panel into its own floating window')) self.dock_button.setIcon(QIcon(I('arrow-up.png'))) + # Remove the ampersands from the buttons because shortcuts exist. self.lock_qv.setText(_('Lock Quickview contents')) self.search_button.setText(_('Search')) + self.refresh_button.setText(_('Refresh')) self.gui.quickview_splitter.add_quickview_dialog(self) self.close_button.setVisible(False) else: @@ -252,6 +256,13 @@ class Quickview(QDialog, Ui_Quickview): self.dock_button.clicked.connect(self.show_as_pane_changed) self.gui.search.cleared.connect(self.indicate_no_items) + # Enable the refresh button only when QV is locked + self.refresh_button.setEnabled(False) + self.lock_qv.stateChanged.connect(self.lock_qv_changed) + + def lock_qv_changed(self, state): + self.refresh_button.setEnabled(state) + def add_columns_to_widget(self): ''' Get the list of columns from the preferences. Clear the current table diff --git a/src/calibre/gui2/dialogs/quickview.ui b/src/calibre/gui2/dialogs/quickview.ui index 3f1b6c497c..87bcbe236e 100644 --- a/src/calibre/gui2/dialogs/quickview.ui +++ b/src/calibre/gui2/dialogs/quickview.ui @@ -148,6 +148,32 @@ + + + + &Refresh + + + When Quickview is locked, refresh the window using the last selected book and that book's value in the last selected column. + + + false + + + + + + + Qt::Horizontal + + + + 0 + 0 + + + +