@@ -162,12 +162,15 @@ def add_or_edit_value(self):
162
162
else :
163
163
self .add_value ()
164
164
165
+ def _group (self , is_grouped ):
166
+ self .is_grouped = is_grouped
167
+ self .ui .add_value .setEnabled (not is_grouped )
168
+
165
169
def remove_value (self ):
166
170
value_list = self .value_list
167
171
row = value_list .currentRow ()
168
172
if row == 0 and self .is_grouped :
169
- self .is_grouped = False
170
- self .ui .add_value .setEnabled (True )
173
+ self ._group (False )
171
174
value_list .takeItem (row )
172
175
173
176
def on_rows_inserted (self , parent , first , last ):
@@ -241,42 +244,41 @@ def tag_changed(self, tag):
241
244
if values is None :
242
245
new_tags = self .metadata_box .tag_diff .new
243
246
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 :
246
248
# grouped values have a special text, which isn't a valid tag value
247
249
values = [display_value .text ]
248
- self .ui . add_value . setEnabled ( False )
250
+ self ._group ( True )
249
251
else :
250
252
# normal tag values
251
253
values = new_tags [self .tag ]
252
- self .ui . add_value . setEnabled ( True )
254
+ self ._group ( False )
253
255
254
256
self .value_list .model ().rowsInserted .disconnect (self .on_rows_inserted )
255
257
self ._add_value_items (values )
256
258
self .value_list .model ().rowsInserted .connect (self .on_rows_inserted )
257
259
self .value_list .setCurrentItem (self .value_list .item (0 ), QtCore .QItemSelectionModel .SelectionFlag .SelectCurrent )
258
260
tag_names .editTextChanged .connect (self .tag_changed )
259
261
262
+ def _set_item_style (self , item ):
263
+ font = item .font ()
264
+ font .setItalic (self .is_grouped )
265
+ item .setFont (font )
266
+
260
267
def _add_value_items (self , values ):
261
268
values = [v for v in values if v ] or ["" ]
262
269
for value in values :
263
270
item = QtWidgets .QListWidgetItem (value )
264
271
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 )
268
273
self .value_list .addItem (item )
269
274
270
275
def value_edited (self , item ):
271
276
row = self .value_list .row (item )
272
277
value = item .text ()
273
278
if row == 0 and self .is_grouped :
274
279
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 )
280
282
else :
281
283
self ._modified_tag ()[row ] = value
282
284
# add tags to the completer model once they get values
0 commit comments