From b4bfaed65fd2668a877f1c0e7d54e9fc4f883d96 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Thu, 16 Feb 2017 23:50:09 +0100 Subject: [PATCH] Update album images when an album is to be shown When a user drops different images to be used as covers of different tracks of the same album, the album's metadata.images list didn't reflect these changes. This commit updates the list of images so CoverArtBox always shows the correct values --- picard/album.py | 13 +++++++++++++ picard/ui/mainwindow.py | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/picard/album.py b/picard/album.py index e332ee2aa..4d85ba9b0 100644 --- a/picard/album.py +++ b/picard/album.py @@ -557,6 +557,19 @@ class Album(DataObject, Item): self.tagger.albums[mbid] = self self.load(priority=True, refresh=True) + def update_metadata_images(self): + new_images = [] + for track in self.tracks: + for file in list(track.linked_files): + for image in file.metadata.images: + if image not in new_images: + new_images.append(image) + for file in list(self.unmatched_files.files): + for image in file.metadata.images: + if image not in new_images: + new_images.append(image) + self.metadata.images = new_images + class NatAlbum(Album): diff --git a/picard/ui/mainwindow.py b/picard/ui/mainwindow.py index 24a1b2b9b..a9f23a0ae 100644 --- a/picard/ui/mainwindow.py +++ b/picard/ui/mainwindow.py @@ -952,6 +952,10 @@ class MainWindow(QtGui.QMainWindow): } self.set_statusbar_message(msg, mparms, echo=None, history=None) + elif isinstance(obj, Album): + obj.update_metadata_images() + metadata = obj.metadata + orig_metadata = obj.orig_metadata elif obj.can_edit_tags(): metadata = obj.metadata