diff --git a/picard/item.py b/picard/item.py index 4abff427e..360b767d8 100644 --- a/picard/item.py +++ b/picard/item.py @@ -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) diff --git a/picard/track.py b/picard/track.py index 0574bd998..c7012063b 100644 --- a/picard/track.py +++ b/picard/track.py @@ -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):