Add a clear button

This commit is contained in:
Kovid Goyal 2021-10-06 21:45:20 +05:30
parent ce37adcef7
commit a16c9b6807
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -67,6 +67,11 @@ class ChooseMultiSort(Dialog):
cl.itemChanged.connect(self.update_order_label)
cl.model().rowsMoved.connect(self.update_order_label)
self.clear_button = b = self.bb.addButton(_('&Clear'), QDialogButtonBox.ButtonRole.ActionRole)
b.setToolTip(_('Clear all selected columns'))
b.setAutoDefault(False)
b.clicked.connect(self.clear)
self.save_button = b = self.bb.addButton(_('&Save'), QDialogButtonBox.ButtonRole.ActionRole)
b.setToolTip(_('Save this sort order for easy re-use'))
b.clicked.connect(self.save)
@ -79,6 +84,11 @@ class ChooseMultiSort(Dialog):
b.setMenu(self.load_menu)
self.load_menu.aboutToShow.connect(self.populate_load_menu)
def clear(self):
for item in self.iteritems():
item.setCheckState(Qt.CheckState.Unchecked)
self.column_list.sortItems()
def item_double_clicked(self, item):
cs = item.checkState()
item.setCheckState(Qt.CheckState.Checked if cs == Qt.CheckState.Unchecked else Qt.CheckState.Unchecked)
@ -163,9 +173,8 @@ class ChooseMultiSort(Dialog):
return (cl.item(i) for i in range(cl.count()))
def apply_spec(self, spec):
self.clear()
cl = self.column_list
for item in self.iteritems():
item.setCheckState(Qt.CheckState.Unchecked)
imap = {item.data(Qt.ItemDataRole.UserRole): item for item in self.iteritems()}
for key, ascending in reversed(spec):
item = imap.get(key)