iter_children_items_metadata(): use an ignore set instead of matching class instance

This commit is contained in:
Laurent Monin
2024-05-23 15:24:15 +02:00
parent 5ad0640020
commit 8e09dfce07
2 changed files with 3 additions and 3 deletions

View File

@@ -166,6 +166,7 @@ class MetadataItem(Item):
self.orig_metadata = Metadata()
self.update_metadata_images_enabled = True
self.update_children_metadata_attrs = {}
self.iter_children_items_metadata_ignore_attrs = {}
def enable_update_metadata_images(self, enabled):
self.update_metadata_images_enabled = enabled
@@ -187,10 +188,8 @@ class MetadataItem(Item):
"""Yield MetadataItems that are children of the current object"""
def iter_children_items_metadata(self, metadata_attr):
from picard.track import Track
for s in self.children_metadata_items():
if metadata_attr == 'orig_metadata' and isinstance(s, Track):
if metadata_attr in s.iter_children_items_metadata_ignore_attrs:
continue
yield getattr(s, metadata_attr)

View File

@@ -134,6 +134,7 @@ class Track(DataObject, FileListItem):
self.scripted_metadata = Metadata()
self._track_artists = []
self._orig_images = None
self.iter_children_items_metadata_ignore_attrs = {'orig_metadata'}
@property
def num_linked_files(self):