Add shortcuts to reverse and re-apply current sort

Fixes #1889298 [Enhancement Request: Hotkey to resort current view/reverse current sort](https://bugs.launchpad.net/calibre/+bug/1889298)
This commit is contained in:
Kovid Goyal 2020-09-23 14:23:34 +05:30
parent c40c538cc1
commit f461c24fb2
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -38,6 +38,33 @@ class SortByAction(InterfaceAction):
self.sorted_icon = QIcon(I('ok.png')) self.sorted_icon = QIcon(I('ok.png'))
self.qaction.menu().aboutToShow.connect(self.about_to_show) self.qaction.menu().aboutToShow.connect(self.about_to_show)
def c(attr, title, tooltip, callback, keys=()):
ac = self.create_action(spec=(title, None, tooltip, keys), attr=attr)
ac.triggered.connect(callback)
self.gui.addAction(ac)
return ac
c('reverse_sort_action', _('Reverse current sort'), _('Reverse the current sort order'), self.reverse_sort)
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)
def reapply_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, order)
def location_selected(self, loc): def location_selected(self, loc):
enabled = loc == 'library' enabled = loc == 'library'
self.qaction.setEnabled(enabled) self.qaction.setEnabled(enabled)