diff --git a/picard/coverart.py b/picard/coverart.py index ad1d6c31e..81fb5e06d 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -336,7 +336,12 @@ class CoverArt: """Downloads next item in queue. If there are none left, loading of album will be finalized. """ - if self._queue_empty(): + stop = (self.front_image_found and + config.setting["save_images_to_tags"] and not + config.setting["save_images_to_files"] and + config.setting["save_only_front_images_to_tags"]) + + if stop or self._queue_empty(): self.album._finalize_loading(None) return diff --git a/picard/metadata.py b/picard/metadata.py index a1d64b666..31f1c11be 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -55,9 +55,13 @@ class Metadata(dict): def images_to_be_saved_to_tags(self): if not config.setting["save_images_to_tags"]: return () - if not config.setting["save_only_front_images_to_tags"]: - return self.images - return [img for img in self.images if img.is_front_image()] + if config.setting["save_only_front_images_to_tags"]: + # FIXME : rename option at some point + # Embed only ONE front image + for img in self.images: + if img.is_front_image(): + return [img] + return self.images def remove_image(self, index): self.images.pop(index) diff --git a/test/test_formats.py b/test/test_formats.py index e664ef4ba..bef277cff 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -623,7 +623,7 @@ class TestCoverArt(unittest.TestCase): def test_asf_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.wma'), - set('acdfg'[:])) + set('a')) def test_ape_types_only_front(self): self._test_cover_art_types_only_front( @@ -633,22 +633,22 @@ class TestCoverArt(unittest.TestCase): def test_mp3_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.mp3'), - set('acdfg'[:])) + set('a')) def test_mp4_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.m4a'), - set('acdfg'[:])) + set('a')) def test_ogg_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.ogg'), - set('acdfg'[:])) + set('a')) def test_flac_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.flac'), - set('acdfg'[:])) + set('a')) def _test_cover_art(self, filename): self._set_up(filename)