From 87b94d58298e7d5bea22f7b23f75b2ea7fd02e76 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Thu, 29 Oct 2020 14:14:58 +0100 Subject: [PATCH] PICARD-1828: Avoid selection changes when cover art gets updated --- picard/file.py | 2 +- picard/track.py | 1 - picard/ui/coverartbox.py | 14 ++++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/picard/file.py b/picard/file.py index cbca123a1..bfb90999c 100644 --- a/picard/file.py +++ b/picard/file.py @@ -262,7 +262,7 @@ class File(QtCore.QObject, Item): def keep_original_images(self): self.metadata.images = self.orig_metadata.images.copy() - self.update() + self.update(signal=False) self.metadata_images_changed.emit() def has_error(self): diff --git a/picard/track.py b/picard/track.py index e7ac8c3c6..bd6c888cd 100644 --- a/picard/track.py +++ b/picard/track.py @@ -360,7 +360,6 @@ class Track(DataObject, Item): self.metadata.images = self.orig_metadata.images.copy() else: self.metadata.images = ImageList() - self.update() class NonAlbumTrack(Track): diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index 366ed7c11..d0738d4ee 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -472,7 +472,7 @@ class CoverArtBox(QtWidgets.QGroupBox): for file in album.iterfiles(): set_image(file, coverartimage) file.metadata_images_changed.emit() - file.update() + file.update(signal=False) album.enable_update_metadata_images(True) album.update_metadata_images() album.update(False) @@ -483,7 +483,7 @@ class CoverArtBox(QtWidgets.QGroupBox): for file in cluster.iterfiles(): set_image(file, coverartimage) file.metadata_images_changed.emit() - file.update() + file.update(signal=False) cluster.enable_update_metadata_images(True) cluster.update_metadata_images() cluster.update() @@ -495,10 +495,11 @@ class CoverArtBox(QtWidgets.QGroupBox): for file in track.iterfiles(): set_image(file, coverartimage) file.metadata_images_changed.emit() - file.update() + file.update(signal=False) track.album.enable_update_metadata_images(True) track.album.update_metadata_images() track.album.update(False) + track.update() elif isinstance(self.item, File): file = self.item set_image(file, coverartimage) @@ -528,6 +529,11 @@ class CoverArtBox(QtWidgets.QGroupBox): def set_load_image_behavior(self, behavior): config.setting["load_image_behavior"] = behavior + def keep_original_images(self): + self.item.keep_original_images() + self.cover_art.set_metadata(self.item.metadata) + self.show() + def contextMenuEvent(self, event): menu = QtWidgets.QMenu(self) if self.show_details_button.isVisible(): @@ -539,7 +545,7 @@ class CoverArtBox(QtWidgets.QGroupBox): if self.orig_cover_art.isVisible(): name = _('Keep original cover art') use_orig_value_action = QtWidgets.QAction(name, self.parent) - use_orig_value_action.triggered.connect(self.item.keep_original_images) + use_orig_value_action.triggered.connect(self.keep_original_images) menu.addAction(use_orig_value_action) if self.item and self.item.can_show_coverart: