mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
pyqt6: Fix handling of CheckStateRole in various models
The idiotic enums strike again
This commit is contained in:
parent
d031538a2e
commit
079f89b6c7
@ -272,7 +272,7 @@ class DisplayedFields(QAbstractListModel): # {{{
|
|||||||
for i in range(self.rowCount()):
|
for i in range(self.rowCount()):
|
||||||
idx = self.index(i)
|
idx = self.index(i)
|
||||||
if idx.isValid():
|
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):
|
def flags(self, index):
|
||||||
ans = QAbstractListModel.flags(self, index)
|
ans = QAbstractListModel.flags(self, index)
|
||||||
@ -281,7 +281,7 @@ class DisplayedFields(QAbstractListModel): # {{{
|
|||||||
def setData(self, index, val, role):
|
def setData(self, index, val, role):
|
||||||
ret = False
|
ret = False
|
||||||
if role == Qt.ItemDataRole.CheckStateRole:
|
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
|
self.changed = True
|
||||||
ret = True
|
ret = True
|
||||||
self.dataChanged.emit(index, index)
|
self.dataChanged.emit(index, index)
|
||||||
|
@ -90,6 +90,7 @@ class SourcesModel(QAbstractTableModel): # {{{
|
|||||||
col = index.column()
|
col = index.column()
|
||||||
ret = False
|
ret = False
|
||||||
if col == 0 and role == Qt.ItemDataRole.CheckStateRole:
|
if col == 0 and role == Qt.ItemDataRole.CheckStateRole:
|
||||||
|
val = Qt.CheckState(val)
|
||||||
if val == Qt.CheckState.Checked and 'Douban' in plugin.name:
|
if val == Qt.CheckState.Checked and 'Douban' in plugin.name:
|
||||||
if not question_dialog(self.gui_parent,
|
if not question_dialog(self.gui_parent,
|
||||||
_('Are you sure?'), '<p>'+
|
_('Are you sure?'), '<p>'+
|
||||||
@ -99,7 +100,7 @@ class SourcesModel(QAbstractTableModel): # {{{
|
|||||||
' sure you want to enable it?'),
|
' sure you want to enable it?'),
|
||||||
show_copy_button=False):
|
show_copy_button=False):
|
||||||
return ret
|
return ret
|
||||||
self.enabled_overrides[plugin] = int(val)
|
self.enabled_overrides[plugin] = val
|
||||||
ret = True
|
ret = True
|
||||||
if col == 1 and role == Qt.ItemDataRole.EditRole:
|
if col == 1 and role == Qt.ItemDataRole.EditRole:
|
||||||
try:
|
try:
|
||||||
@ -208,7 +209,7 @@ class FieldsModel(QAbstractListModel): # {{{
|
|||||||
|
|
||||||
def restore_defaults(self):
|
def restore_defaults(self):
|
||||||
self.beginResetModel()
|
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()
|
self.endResetModel()
|
||||||
|
|
||||||
def select_all(self):
|
def select_all(self):
|
||||||
@ -228,7 +229,7 @@ class FieldsModel(QAbstractListModel): # {{{
|
|||||||
return False
|
return False
|
||||||
ret = False
|
ret = False
|
||||||
if role == Qt.ItemDataRole.CheckStateRole:
|
if role == Qt.ItemDataRole.CheckStateRole:
|
||||||
self.overrides[field] = int(val)
|
self.overrides[field] = Qt.CheckState(val)
|
||||||
ret = True
|
ret = True
|
||||||
if ret:
|
if ret:
|
||||||
self.dataChanged.emit(index, index)
|
self.dataChanged.emit(index, index)
|
||||||
|
@ -77,14 +77,12 @@ class Matches(QAbstractItemModel):
|
|||||||
def enable_all(self):
|
def enable_all(self):
|
||||||
for i in range(len(self.matches)):
|
for i in range(len(self.matches)):
|
||||||
index = self.createIndex(i, 0)
|
index = self.createIndex(i, 0)
|
||||||
data = (True)
|
self.setData(index, Qt.CheckState.Checked, Qt.ItemDataRole.CheckStateRole)
|
||||||
self.setData(index, data, Qt.ItemDataRole.CheckStateRole)
|
|
||||||
|
|
||||||
def enable_none(self):
|
def enable_none(self):
|
||||||
for i in range(len(self.matches)):
|
for i in range(len(self.matches)):
|
||||||
index = self.createIndex(i, 0)
|
index = self.createIndex(i, 0)
|
||||||
data = (False)
|
self.setData(index, Qt.CheckState.Unchecked, Qt.ItemDataRole.CheckStateRole)
|
||||||
self.setData(index, data, Qt.ItemDataRole.CheckStateRole)
|
|
||||||
|
|
||||||
def enable_invert(self):
|
def enable_invert(self):
|
||||||
for i in range(len(self.matches)):
|
for i in range(len(self.matches)):
|
||||||
@ -92,7 +90,7 @@ class Matches(QAbstractItemModel):
|
|||||||
|
|
||||||
def toggle_plugin(self, index):
|
def toggle_plugin(self, index):
|
||||||
new_index = self.createIndex(index.row(), 0)
|
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)
|
self.setData(new_index, data, Qt.ItemDataRole.CheckStateRole)
|
||||||
|
|
||||||
def index(self, row, column, parent=QModelIndex()):
|
def index(self, row, column, parent=QModelIndex()):
|
||||||
@ -173,7 +171,7 @@ class Matches(QAbstractItemModel):
|
|||||||
return False
|
return False
|
||||||
col = index.column()
|
col = index.column()
|
||||||
if col == 0:
|
if col == 0:
|
||||||
if bool(data):
|
if data in (Qt.CheckState.Checked, Qt.CheckState.Checked.value):
|
||||||
enable_plugin(self.get_plugin(index))
|
enable_plugin(self.get_plugin(index))
|
||||||
else:
|
else:
|
||||||
disable_plugin(self.get_plugin(index))
|
disable_plugin(self.get_plugin(index))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user