pyqt6: setSortIndicator() and setCheckState()

This commit is contained in:
Kovid Goyal 2021-11-24 16:30:01 +05:30
parent 4242a71758
commit 93ff403587
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 15 additions and 9 deletions

View File

@ -266,25 +266,25 @@ class CheckLibraryDialog(QDialog):
tl.setData(1, Qt.ItemDataRole.UserRole, self.is_fixable) tl.setData(1, Qt.ItemDataRole.UserRole, self.is_fixable)
tl.setText(1, _('(fixable)')) tl.setText(1, _('(fixable)'))
tl.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable) tl.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable)
tl.setCheckState(1, False) tl.setCheckState(1, Qt.CheckState.Unchecked)
else: else:
tl.setData(1, Qt.ItemDataRole.UserRole, self.is_deletable) tl.setData(1, Qt.ItemDataRole.UserRole, self.is_deletable)
tl.setData(2, Qt.ItemDataRole.UserRole, self.is_deletable) tl.setData(2, Qt.ItemDataRole.UserRole, self.is_deletable)
tl.setText(1, _('(deletable)')) tl.setText(1, _('(deletable)'))
tl.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable) tl.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable)
tl.setCheckState(1, False) tl.setCheckState(1, Qt.CheckState.Unchecked)
if attr == 'extra_covers': if attr == 'extra_covers':
tl.setData(2, Qt.ItemDataRole.UserRole, self.is_deletable) tl.setData(2, Qt.ItemDataRole.UserRole, self.is_deletable)
tl.setText(2, _('(deletable)')) tl.setText(2, _('(deletable)'))
tl.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable) tl.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable)
tl.setCheckState(2, False) tl.setCheckState(2, Qt.CheckState.Unchecked)
self.top_level_items[attr] = tl self.top_level_items[attr] = tl
for problem in list_: for problem in list_:
it = Item() it = Item()
if checkable: if checkable:
it.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable) it.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable)
it.setCheckState(2, False) it.setCheckState(2, Qt.CheckState.Unchecked)
it.setData(2, Qt.ItemDataRole.UserRole, self.is_deletable) it.setData(2, Qt.ItemDataRole.UserRole, self.is_deletable)
else: else:
it.setFlags(Qt.ItemFlag.ItemIsEnabled) it.setFlags(Qt.ItemFlag.ItemIsEnabled)
@ -318,6 +318,8 @@ class CheckLibraryDialog(QDialog):
def item_changed(self, item, column): def item_changed(self, item, column):
def set_delete_boxes(node, col, to_what): def set_delete_boxes(node, col, to_what):
if isinstance(to_what, bool):
to_what = Qt.CheckState.Checked if to_what else Qt.CheckState.Unchecked
self.log.blockSignals(True) self.log.blockSignals(True)
if col: if col:
node.setCheckState(col, to_what) node.setCheckState(col, to_what)
@ -357,7 +359,7 @@ class CheckLibraryDialog(QDialog):
set_delete_boxes(item, column, item.checkState(column)) set_delete_boxes(item, column, item.checkState(column))
if column == 2: if column == 2:
self.log.blockSignals(True) self.log.blockSignals(True)
item.setCheckState(1, False) item.setCheckState(1, Qt.CheckState.Unchecked)
self.log.blockSignals(False) self.log.blockSignals(False)
else: else:
item.setCheckState(column, Qt.CheckState.Unchecked) item.setCheckState(column, Qt.CheckState.Unchecked)

View File

@ -1520,6 +1520,7 @@ class DeviceBooksView(BooksView): # {{{
def reverse_sort(self): def reverse_sort(self):
h = self.horizontalHeader() h = self.horizontalHeader()
h.setSortIndicator(h.sortIndicatorSection(), 1 - int(h.sortIndicatorOrder())) h.setSortIndicator(
h.sortIndicatorSection(), Qt.SortOrder.AscendingOrder if h.sortIndicatorOrder() == Qt.SortOrder.DescendingOrder else Qt.SortOrder.DescendingOrder)
# }}} # }}}

View File

@ -253,7 +253,7 @@ class SearchDialog(QDialog, Ui_Dialog):
self.config['store_splitter_state'] = bytearray(self.store_splitter.saveState()) self.config['store_splitter_state'] = bytearray(self.store_splitter.saveState())
self.config['results_view_column_width'] = [self.results_view.columnWidth(i) for i in range(self.results_view.model().columnCount())] self.config['results_view_column_width'] = [self.results_view.columnWidth(i) for i in range(self.results_view.model().columnCount())]
self.config['sort_col'] = self.results_view.model().sort_col self.config['sort_col'] = self.results_view.model().sort_col
self.config['sort_order'] = self.results_view.model().sort_order self.config['sort_order'] = self.results_view.model().sort_order.value
self.config['open_external'] = self.open_external.isChecked() self.config['open_external'] = self.open_external.isChecked()
store_check = {} store_check = {}
@ -288,8 +288,11 @@ class SearchDialog(QDialog, Ui_Dialog):
self.store_checks[n].setChecked(store_check[n]) self.store_checks[n].setChecked(store_check[n])
self.results_view.model().sort_col = self.config.get('sort_col', 2) self.results_view.model().sort_col = self.config.get('sort_col', 2)
self.results_view.model().sort_order = self.config.get('sort_order', Qt.SortOrder.AscendingOrder) so = self.config.get('sort_order', Qt.SortOrder.AscendingOrder)
self.results_view.header().setSortIndicator(self.results_view.model().sort_col, self.results_view.model().sort_order) if isinstance(so, int):
so = Qt.SortOrder(so)
self.results_view.model().sort_order = so
self.results_view.header().setSortIndicator(self.results_view.model().sort_col, so)
def load_settings(self): def load_settings(self):
# Seconds # Seconds