Have the sort and resort actions work in all views

This commit is contained in:
Kovid Goyal 2020-09-23 17:46:34 +05:30
parent 6c0d3efca7
commit 103659f267
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 20 additions and 9 deletions

View File

@ -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'

View File

@ -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()))
# }}}