diff --git a/picard/album.py b/picard/album.py index 81da90d25..42ffde220 100644 --- a/picard/album.py +++ b/picard/album.py @@ -85,6 +85,11 @@ class Album(DataObject, Item): for file in self.unmatched_files.iterfiles(): yield file + def enable_update_metadata_images(self, enabled): + self.update_metadata_images_enabled = enabled + if enabled: + self.update_metadata_images() + def append_album_artist(self, id): """Append artist id to the list of album artists and return an AlbumArtist instance""" @@ -256,7 +261,7 @@ class Album(DataObject, Item): self._tracks_loaded = True if not self._requests: - self.update_metadata_images_enabled = False + self.enable_update_metadata_images(False) # Prepare parser for user's script if config.setting["enable_tagger_scripts"]: for s_pos, s_name, s_enabled, s_text in config.setting["list_of_scripts"]: @@ -288,8 +293,8 @@ class Album(DataObject, Item): self.loaded = True self.status = None self.match_files(self.unmatched_files.files) - self.update_metadata_images_enabled = True self.update() + self.enable_update_metadata_images(True) self.tagger.window.set_statusbar_message( N_('Album %(id)s loaded: %(artist)s - %(album)s'), { diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index f7e7580b4..c44b13852 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -313,7 +313,7 @@ class CoverArtBox(QtGui.QGroupBox): return if isinstance(self.item, Album): album = self.item - album.metadata.set_front_image(coverartimage) + album.enable_update_metadata_images(False) for track in album.tracks: track.metadata.set_front_image(coverartimage) track.metadata_images_changed.emit() @@ -321,14 +321,17 @@ class CoverArtBox(QtGui.QGroupBox): file.metadata.set_front_image(coverartimage) file.metadata_images_changed.emit() file.update() + album.enable_update_metadata_images(True) elif isinstance(self.item, Track): track = self.item + track.album.enable_update_metadata_images(False) track.metadata.set_front_image(coverartimage) track.metadata_images_changed.emit() for file in track.iterfiles(): file.metadata.set_front_image(coverartimage) file.metadata_images_changed.emit() file.update() + track.album.enable_update_metadata_images(True) elif isinstance(self.item, File): file = self.item file.metadata.set_front_image(coverartimage)