pyqt6: Fix handling of CheckStateRole in various models

The idiotic enums strike again
This commit is contained in:
Kovid Goyal 2022-01-07 08:57:11 +05:30
parent d031538a2e
commit 079f89b6c7
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 10 additions and 11 deletions

View File

@ -272,7 +272,7 @@ class DisplayedFields(QAbstractListModel): # {{{
for i in range(self.rowCount()):
idx = self.index(i)
if idx.isValid():
self.setData(idx, show, Qt.ItemDataRole.CheckStateRole)
self.setData(idx, Qt.CheckState.Checked if show else Qt.CheckState.Unchecked, Qt.ItemDataRole.CheckStateRole)
def flags(self, index):
ans = QAbstractListModel.flags(self, index)
@ -281,7 +281,7 @@ class DisplayedFields(QAbstractListModel): # {{{
def setData(self, index, val, role):
ret = False
if role == Qt.ItemDataRole.CheckStateRole:
self.fields[index.row()][1] = bool(val)
self.fields[index.row()][1] = val in (Qt.CheckState.Checked, Qt.CheckState.Checked.value)
self.changed = True
ret = True
self.dataChanged.emit(index, index)

View File

@ -90,6 +90,7 @@ class SourcesModel(QAbstractTableModel): # {{{
col = index.column()
ret = False
if col == 0 and role == Qt.ItemDataRole.CheckStateRole:
val = Qt.CheckState(val)
if val == Qt.CheckState.Checked and 'Douban' in plugin.name:
if not question_dialog(self.gui_parent,
_('Are you sure?'), '<p>'+
@ -99,7 +100,7 @@ class SourcesModel(QAbstractTableModel): # {{{
' sure you want to enable it?'),
show_copy_button=False):
return ret
self.enabled_overrides[plugin] = int(val)
self.enabled_overrides[plugin] = val
ret = True
if col == 1 and role == Qt.ItemDataRole.EditRole:
try:
@ -208,7 +209,7 @@ class FieldsModel(QAbstractListModel): # {{{
def restore_defaults(self):
self.beginResetModel()
self.overrides = {f: self.state(f, Qt.CheckState.Checked) for f in self.fields}
self.overrides = {f: self.state(f, True) for f in self.fields}
self.endResetModel()
def select_all(self):
@ -228,7 +229,7 @@ class FieldsModel(QAbstractListModel): # {{{
return False
ret = False
if role == Qt.ItemDataRole.CheckStateRole:
self.overrides[field] = int(val)
self.overrides[field] = Qt.CheckState(val)
ret = True
if ret:
self.dataChanged.emit(index, index)

View File

@ -77,14 +77,12 @@ class Matches(QAbstractItemModel):
def enable_all(self):
for i in range(len(self.matches)):
index = self.createIndex(i, 0)
data = (True)
self.setData(index, data, Qt.ItemDataRole.CheckStateRole)
self.setData(index, Qt.CheckState.Checked, Qt.ItemDataRole.CheckStateRole)
def enable_none(self):
for i in range(len(self.matches)):
index = self.createIndex(i, 0)
data = (False)
self.setData(index, data, Qt.ItemDataRole.CheckStateRole)
self.setData(index, Qt.CheckState.Unchecked, Qt.ItemDataRole.CheckStateRole)
def enable_invert(self):
for i in range(len(self.matches)):
@ -92,7 +90,7 @@ class Matches(QAbstractItemModel):
def toggle_plugin(self, index):
new_index = self.createIndex(index.row(), 0)
data = (is_disabled(self.get_plugin(index)))
data = Qt.CheckState.Unchecked if is_disabled(self.get_plugin(index)) else Qt.CheckState.Checked
self.setData(new_index, data, Qt.ItemDataRole.CheckStateRole)
def index(self, row, column, parent=QModelIndex()):
@ -173,7 +171,7 @@ class Matches(QAbstractItemModel):
return False
col = index.column()
if col == 0:
if bool(data):
if data in (Qt.CheckState.Checked, Qt.CheckState.Checked.value):
enable_plugin(self.get_plugin(index))
else:
disable_plugin(self.get_plugin(index))