mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Add the ability to sort the library view by a specific named column (field). Useful for sorting by fields that are not visible.
This commit is contained in:
parent
0cc37216b4
commit
4a2faf83d8
@ -314,6 +314,13 @@ class BooksModel(QAbstractTableModel): # {{{
|
|||||||
if not isinstance(order, bool):
|
if not isinstance(order, bool):
|
||||||
order = order == Qt.AscendingOrder
|
order = order == Qt.AscendingOrder
|
||||||
label = self.column_map[col]
|
label = self.column_map[col]
|
||||||
|
self._sort(label, order, reset)
|
||||||
|
|
||||||
|
def sort_by_named_column(self, field, order, reset=True):
|
||||||
|
if field in self.db.field_metadata.keys():
|
||||||
|
self._sort(field, order, reset)
|
||||||
|
|
||||||
|
def _sort(self, label, order, reset):
|
||||||
self.db.sort(label, order)
|
self.db.sort(label, order)
|
||||||
if reset:
|
if reset:
|
||||||
self.reset()
|
self.reset()
|
||||||
|
@ -236,6 +236,16 @@ class BooksView(QTableView): # {{{
|
|||||||
sm.select(idx, sm.Select|sm.Rows)
|
sm.select(idx, sm.Select|sm.Rows)
|
||||||
self.scroll_to_row(indices[0].row())
|
self.scroll_to_row(indices[0].row())
|
||||||
self.selected_ids = []
|
self.selected_ids = []
|
||||||
|
|
||||||
|
def sort_by_named_column(self, field, order, reset=True):
|
||||||
|
if field in self.column_map:
|
||||||
|
idx = self.column_map.index(field)
|
||||||
|
if order:
|
||||||
|
self.sortByColumn(idx, Qt.AscendingOrder)
|
||||||
|
else:
|
||||||
|
self.sortByColumn(idx, Qt.DescendingOrder)
|
||||||
|
else:
|
||||||
|
self._model.sort_by_named_column(field, order, reset)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Ondevice column {{{
|
# Ondevice column {{{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user