diff --git a/src/calibre/gui2/actions/sort.py b/src/calibre/gui2/actions/sort.py index 9cfc4c7c8c..99cd2a5c1a 100644 --- a/src/calibre/gui2/actions/sort.py +++ b/src/calibre/gui2/actions/sort.py @@ -44,20 +44,14 @@ class SortByAction(InterfaceAction): self.gui.addAction(ac) return ac - c('reverse_sort_action', _('Reverse current sort'), _('Reverse the current sort order'), self.reverse_sort) + c('reverse_sort_action', _('Reverse current sort'), _('Reverse the current sort order'), self.reverse_sort, 'shift+f5') c('reapply_sort_action', _('Re-apply current sort'), _('Re-apply the current sort'), self.reapply_sort, 'f5') def reverse_sort(self): - lv = self.gui.library_view - m = lv.model() - try: - sort_col, order = m.sorted_on - except TypeError: - sort_col, order = 'date', True - lv.sort_by_named_field(sort_col, not order) + self.gui.current_view().reverse_sort() def reapply_sort(self): - self.gui.library_view.resort() + self.gui.current_view().resort() def location_selected(self, loc): enabled = loc == 'library' diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 48d345e03c..d60b524862 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -604,6 +604,15 @@ class BooksView(QTableView): # {{{ def resort(self): with self.preserve_state(preserve_vpos=False, require_selected_ids=False): self._model.resort(reset=True) + + def reverse_sort(self): + with self.preserve_state(preserve_vpos=False, require_selected_ids=False): + m = self.model() + try: + sort_col, order = m.sorted_on + except TypeError: + sort_col, order = 'date', True + self.sort_by_named_field(sort_col, not order) # }}} # Ondevice column {{{ @@ -1411,4 +1420,12 @@ class DeviceBooksView(BooksView): # {{{ self._model.set_editable(editable) self.drag_allowed = supports_backloading + def resort(self): + h = self.horizontalHeader() + self.model().sort(h.sortIndicatorSection(), h.sortIndicatorOrder()) + + def reverse_sort(self): + h = self.horizontalHeader() + h.setSortIndicator(h.sortIndicatorSection(), 1 - int(h.sortIndicatorOrder())) + # }}}