diff --git a/picard/file.py b/picard/file.py index e5e365d09..dd20fbeb5 100644 --- a/picard/file.py +++ b/picard/file.py @@ -444,7 +444,7 @@ class File(QtCore.QObject, Item): counters = defaultdict(lambda: 0) images = [] if config.setting["caa_save_single_front_image"]: - images = metadata.get_single_front_image() + images = [metadata.images.get_front_image()] if not images: images = metadata.images for image in images: diff --git a/picard/metadata.py b/picard/metadata.py index a8e20e5d4..a5d262bfa 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -103,19 +103,11 @@ class Metadata(MutableMapping): return () images = [img for img in self.images if img.can_be_saved_to_tags] if config.setting["embed_only_one_front_image"]: - front_image = self.get_single_front_image(images) + front_image = self.images.get_front_image() if front_image: - return front_image + return [front_image] return images - def get_single_front_image(self, images=None): - if not images: - images = self.images - for img in images: - if img.is_front_image(): - return [img] - return [] - def remove_image(self, index): self.images.pop(index) diff --git a/picard/util/imagelist.py b/picard/util/imagelist.py index f2fdbafac..89c175beb 100644 --- a/picard/util/imagelist.py +++ b/picard/util/imagelist.py @@ -34,6 +34,12 @@ class ImageList(list): except TypeError: return result + def get_front_image(self): + for img in self: + if img.is_front_image(): + return img + return None + class ImageListState: def __init__(self): diff --git a/test/test_imagelist.py b/test/test_imagelist.py index f7aac9053..04bf1f738 100644 --- a/test/test_imagelist.py +++ b/test/test_imagelist.py @@ -264,3 +264,8 @@ class ImageListTest(PicardTestCase): self.assertTrue(list1 == list2) self.assertFalse(list1 == list3) + + def test_get_front_image(self): + self.imagelist.append(self.images['a']) + self.imagelist.append(self.images['b']) + self.assertEqual(self.imagelist.get_front_image(), self.images['b'])