mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix a regression in calibre 6.0 that broke remembering the previous sort order for a column
More PyQt6 enum goodness
This commit is contained in:
parent
c9d3d132be
commit
15ed01d0e1
@ -1604,7 +1604,7 @@ class DeviceBooksModel(BooksModel): # {{{
|
|||||||
else:
|
else:
|
||||||
self.sorted_map = list(range(len(self.db)))
|
self.sorted_map = list(range(len(self.db)))
|
||||||
self.sorted_map.sort(key=keygen, reverse=descending)
|
self.sorted_map.sort(key=keygen, reverse=descending)
|
||||||
self.sorted_on = (self.column_map[col], order)
|
self.sorted_on = (self.column_map[col], not descending)
|
||||||
self.sort_history.insert(0, self.sorted_on)
|
self.sort_history.insert(0, self.sorted_on)
|
||||||
if hasattr(keygen, 'db'):
|
if hasattr(keygen, 'db'):
|
||||||
keygen.db = None
|
keygen.db = None
|
||||||
|
@ -594,6 +594,8 @@ class BooksView(QTableView): # {{{
|
|||||||
self.intelligent_sort(field, order == Qt.SortOrder.AscendingOrder)
|
self.intelligent_sort(field, order == Qt.SortOrder.AscendingOrder)
|
||||||
|
|
||||||
def intelligent_sort(self, field, ascending):
|
def intelligent_sort(self, field, ascending):
|
||||||
|
if isinstance(ascending, Qt.SortOrder):
|
||||||
|
ascending = ascending == Qt.SortOrder.AscendingOrder
|
||||||
m = self.model()
|
m = self.model()
|
||||||
pname = 'previous_sort_order_' + self.__class__.__name__
|
pname = 'previous_sort_order_' + self.__class__.__name__
|
||||||
previous = gprefs.get(pname, {})
|
previous = gprefs.get(pname, {})
|
||||||
@ -602,9 +604,9 @@ class BooksView(QTableView): # {{{
|
|||||||
previous[field] = ascending
|
previous[field] = ascending
|
||||||
gprefs[pname] = previous
|
gprefs[pname] = previous
|
||||||
return
|
return
|
||||||
previous[m.sorted_on[0]] = Qt.SortOrder(m.sorted_on[1]).value
|
previous[m.sorted_on[0]] = m.sorted_on[1]
|
||||||
gprefs[pname] = previous
|
gprefs[pname] = previous
|
||||||
self.sort_by_named_field(field, Qt.SortOrder(previous[field]))
|
self.sort_by_named_field(field, previous[field])
|
||||||
|
|
||||||
def about_to_be_sorted(self, idc):
|
def about_to_be_sorted(self, idc):
|
||||||
selected_rows = [r.row() for r in self.selectionModel().selectedRows()]
|
selected_rows = [r.row() for r in self.selectionModel().selectedRows()]
|
||||||
@ -618,6 +620,8 @@ class BooksView(QTableView): # {{{
|
|||||||
self.horizontalScrollBar().setValue(pos)
|
self.horizontalScrollBar().setValue(pos)
|
||||||
|
|
||||||
def sort_by_named_field(self, field, order, reset=True):
|
def sort_by_named_field(self, field, order, reset=True):
|
||||||
|
if isinstance(order, Qt.SortOrder):
|
||||||
|
order = order == Qt.SortOrder.AscendingOrder
|
||||||
if field in self.column_map:
|
if field in self.column_map:
|
||||||
idx = self.column_map.index(field)
|
idx = self.column_map.index(field)
|
||||||
self.sort_by_column_and_order(idx, order)
|
self.sort_by_column_and_order(idx, order)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user