Enhancement: allow simultaneous editing in the category editor. Select multiple items (tags, whatever), then edit. When you finish editing, all the items will change to the edited value.

This commit is contained in:
Charles Haley 2020-05-13 17:54:58 +01:00
parent 4ecfc43d3d
commit 43715fb699

View File

@ -290,17 +290,22 @@ class TagListEditor(QDialog, Ui_TagListEditor):
gprefs['tag_list_editor_table_widths'] = self.table_column_widths gprefs['tag_list_editor_table_widths'] = self.table_column_widths
gprefs['tag_list_editor_dialog_geometry'] = bytearray(self.saveGeometry()) gprefs['tag_list_editor_dialog_geometry'] = bytearray(self.saveGeometry())
def finish_editing(self, item): def finish_editing(self, edited_item):
if not item.text(): if not edited_item.text():
error_dialog(self, _('Item is blank'), _( error_dialog(self, _('Item is blank'), _(
'An item cannot be set to nothing. Delete it instead.'), show=True) 'An item cannot be set to nothing. Delete it instead.'), show=True)
item.setText(item.initial_text()) self.table.blockSignals(True)
edited_item.setText(edited_item.initial_text())
self.table.blockSignals(False)
return return
if item.text() != item.initial_text(): items = self.table.selectedItems()
for item in items:
if edited_item.text() != item.initial_text():
id_ = int(item.data(Qt.UserRole)) id_ = int(item.data(Qt.UserRole))
self.to_rename[id_] = unicode_type(item.text()) self.to_rename[id_] = unicode_type(item.text())
orig = self.table.item(item.row(), 2) orig = self.table.item(item.row(), 2)
self.table.blockSignals(True) self.table.blockSignals(True)
item.setText(edited_item.text())
orig.setData(Qt.DisplayRole, item.initial_text()) orig.setData(Qt.DisplayRole, item.initial_text())
self.table.blockSignals(False) self.table.blockSignals(False)