Skip to content

Commit 14db96d

Browse files
committed
Add two helper functions to toggle between grouped and normal values
1 parent a095e31 commit 14db96d

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

picard/ui/edittagdialog.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -162,12 +162,15 @@ def add_or_edit_value(self):
162162
else:
163163
self.add_value()
164164

165+
def _group(self, is_grouped):
166+
self.is_grouped = is_grouped
167+
self.ui.add_value.setEnabled(not is_grouped)
168+
165169
def remove_value(self):
166170
value_list = self.value_list
167171
row = value_list.currentRow()
168172
if row == 0 and self.is_grouped:
169-
self.is_grouped = False
170-
self.ui.add_value.setEnabled(True)
173+
self._group(False)
171174
value_list.takeItem(row)
172175

173176
def on_rows_inserted(self, parent, first, last):
@@ -241,42 +244,41 @@ def tag_changed(self, tag):
241244
if values is None:
242245
new_tags = self.metadata_box.tag_diff.new
243246
display_value = new_tags.display_value(self.tag)
244-
self.is_grouped = display_value.is_grouped
245-
if self.is_grouped:
247+
if display_value.is_grouped:
246248
# grouped values have a special text, which isn't a valid tag value
247249
values = [display_value.text]
248-
self.ui.add_value.setEnabled(False)
250+
self._group(True)
249251
else:
250252
# normal tag values
251253
values = new_tags[self.tag]
252-
self.ui.add_value.setEnabled(True)
254+
self._group(False)
253255

254256
self.value_list.model().rowsInserted.disconnect(self.on_rows_inserted)
255257
self._add_value_items(values)
256258
self.value_list.model().rowsInserted.connect(self.on_rows_inserted)
257259
self.value_list.setCurrentItem(self.value_list.item(0), QtCore.QItemSelectionModel.SelectionFlag.SelectCurrent)
258260
tag_names.editTextChanged.connect(self.tag_changed)
259261

262+
def _set_item_style(self, item):
263+
font = item.font()
264+
font.setItalic(self.is_grouped)
265+
item.setFont(font)
266+
260267
def _add_value_items(self, values):
261268
values = [v for v in values if v] or [""]
262269
for value in values:
263270
item = QtWidgets.QListWidgetItem(value)
264271
item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled | QtCore.Qt.ItemFlag.ItemIsEditable | QtCore.Qt.ItemFlag.ItemIsDragEnabled)
265-
font = item.font()
266-
font.setItalic(self.is_grouped)
267-
item.setFont(font)
272+
self._set_item_style(item)
268273
self.value_list.addItem(item)
269274

270275
def value_edited(self, item):
271276
row = self.value_list.row(item)
272277
value = item.text()
273278
if row == 0 and self.is_grouped:
274279
self.modified_tags[self.tag] = [value]
275-
self.is_grouped = False
276-
font = item.font()
277-
font.setItalic(False)
278-
item.setFont(font)
279-
self.ui.add_value.setEnabled(True)
280+
self._group(False)
281+
self._set_item_style(item)
280282
else:
281283
self._modified_tag()[row] = value
282284
# add tags to the completer model once they get values

0 commit comments

Comments
 (0)