mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Mirror sort indicators to split view header
This commit is contained in:
parent
7c3b58be70
commit
8d35902d61
@ -468,10 +468,21 @@ class BooksView(QTableView): # {{{
|
|||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Sorting {{{
|
# Sorting {{{
|
||||||
|
|
||||||
|
def set_sort_indicator(self, logical_idx, ascending):
|
||||||
|
views = [self, self.pin_view] if self.is_library_view else [self]
|
||||||
|
for v in views:
|
||||||
|
ch = v.column_header
|
||||||
|
ch.blockSignals(True)
|
||||||
|
ch.setSortIndicator(logical_idx, Qt.AscendingOrder if ascending else Qt.DescendingOrder)
|
||||||
|
ch.blockSignals(False)
|
||||||
|
|
||||||
def sort_by_column_and_order(self, col, ascending):
|
def sort_by_column_and_order(self, col, ascending):
|
||||||
self.column_header.blockSignals(True)
|
self.column_header.blockSignals(True)
|
||||||
self.sortByColumn(col, Qt.AscendingOrder if ascending else Qt.DescendingOrder)
|
self.sortByColumn(col, Qt.AscendingOrder if ascending else Qt.DescendingOrder)
|
||||||
self.column_header.blockSignals(False)
|
self.column_header.blockSignals(False)
|
||||||
|
if self.is_library_view:
|
||||||
|
self.set_sort_indicator(col, ascending)
|
||||||
|
|
||||||
def user_sort_requested(self, col, order=Qt.AscendingOrder):
|
def user_sort_requested(self, col, order=Qt.AscendingOrder):
|
||||||
if col >= len(self.column_map) or col < 0:
|
if col >= len(self.column_map) or col < 0:
|
||||||
@ -509,9 +520,7 @@ class BooksView(QTableView): # {{{
|
|||||||
self.sort_by_column_and_order(idx, order)
|
self.sort_by_column_and_order(idx, order)
|
||||||
else:
|
else:
|
||||||
self._model.sort_by_named_field(field, order, reset)
|
self._model.sort_by_named_field(field, order, reset)
|
||||||
self.column_header.blockSignals(True)
|
self.set_sort_indicator(-1, True)
|
||||||
self.column_header.setSortIndicator(-1, Qt.AscendingOrder)
|
|
||||||
self.column_header.blockSignals(False)
|
|
||||||
|
|
||||||
def multisort(self, fields, reset=True, only_if_different=False):
|
def multisort(self, fields, reset=True, only_if_different=False):
|
||||||
if len(fields) == 0:
|
if len(fields) == 0:
|
||||||
@ -534,14 +543,12 @@ class BooksView(QTableView): # {{{
|
|||||||
self._model.sort_history = [tuple(x) for x in sh]
|
self._model.sort_history = [tuple(x) for x in sh]
|
||||||
self._model.resort(reset=reset)
|
self._model.resort(reset=reset)
|
||||||
col = fields[0][0]
|
col = fields[0][0]
|
||||||
dir = Qt.AscendingOrder if fields[0][1] else Qt.DescendingOrder
|
ascending = fields[0][1]
|
||||||
if col in self.column_map:
|
|
||||||
col = self.column_map.index(col)
|
|
||||||
self.column_header.blockSignals(True)
|
|
||||||
try:
|
try:
|
||||||
self.column_header.setSortIndicator(col, dir)
|
idx = self.column_map.index(col)
|
||||||
finally:
|
except Exception:
|
||||||
self.column_header.blockSignals(False)
|
idx = -1
|
||||||
|
self.set_sort_indicator(idx, ascending)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Ondevice column {{{
|
# Ondevice column {{{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user