mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix Preferences->Add your own columns changing check state on moving columns. Fixes #2031569 [boxes that are unticked become ticked if another column is moved over it](https://bugs.launchpad.net/calibre/+bug/2031569)
This commit is contained in:
parent
c604802ac8
commit
a69604b519
@ -137,7 +137,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
return
|
||||
self.opt_columns.resizeColumnsToContents()
|
||||
|
||||
def setup_row(self, row, key, order):
|
||||
def setup_row(self, row, key, order, force_checked_to=None):
|
||||
flags = Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable
|
||||
|
||||
if self.is_custom_key(key):
|
||||
@ -161,8 +161,10 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
item.setCheckState(Qt.CheckState.PartiallyChecked)
|
||||
else:
|
||||
item.setFlags(flags)
|
||||
item.setCheckState(Qt.CheckState.Unchecked if key in self.hidden_cols else
|
||||
Qt.CheckState.Checked)
|
||||
if force_checked_to is None:
|
||||
item.setCheckState(Qt.CheckState.Unchecked if key in self.hidden_cols else Qt.CheckState.Checked)
|
||||
else:
|
||||
item.setCheckState(force_checked_to)
|
||||
|
||||
item = QTableWidgetItem(cc['name'])
|
||||
item.setToolTip(cc['name'])
|
||||
@ -216,6 +218,11 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
self.opt_columns.setItem(row, 5, item)
|
||||
self.opt_columns.setSortingEnabled(True)
|
||||
|
||||
def recreate_row(self, row):
|
||||
checked = self.opt_columns.item(row, 0).checkState()
|
||||
title = self.opt_columns.item(row, 2).text()
|
||||
self.setup_row(row, title, row, force_checked_to=checked)
|
||||
|
||||
def up_column(self):
|
||||
self.opt_columns.setSortingEnabled(False)
|
||||
row = self.opt_columns.currentRow()
|
||||
@ -225,8 +232,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
upper = self.opt_columns.takeItem(row, i)
|
||||
self.opt_columns.setItem(row, i, lower)
|
||||
self.opt_columns.setItem(row-1, i, upper)
|
||||
self.setup_row(row-1, self.opt_columns.item(row-1, 2).text(), row-1)
|
||||
self.setup_row(row, self.opt_columns.item(row, 2).text(), row)
|
||||
self.recreate_row(row-1)
|
||||
self.recreate_row(row)
|
||||
self.opt_columns.setCurrentCell(row-1, 1)
|
||||
self.changed_signal.emit()
|
||||
self.opt_columns.setSortingEnabled(True)
|
||||
@ -240,8 +247,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
upper = self.opt_columns.takeItem(row+1, i)
|
||||
self.opt_columns.setItem(row+1, i, lower)
|
||||
self.opt_columns.setItem(row, i, upper)
|
||||
self.setup_row(row+1, self.opt_columns.item(row+1, 2).text(), row+1)
|
||||
self.setup_row(row, self.opt_columns.item(row, 2).text(), row)
|
||||
self.recreate_row(row+1)
|
||||
self.recreate_row(row)
|
||||
self.opt_columns.setCurrentCell(row+1, 1)
|
||||
self.changed_signal.emit()
|
||||
self.opt_columns.setSortingEnabled(True)
|
||||
|
Loading…
x
Reference in New Issue
Block a user