From c6dde741a366cfb722c8279ec09bbddea9bea7f3 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 22 May 2024 21:34:22 +0200 Subject: [PATCH] imagelist._update_state() -> MetadataItem._update_imagelist_state() --- picard/item.py | 32 +++++++++++++++++++++++++++----- picard/util/imagelist.py | 22 ---------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/picard/item.py b/picard/item.py index ae5c2fa3a..6cc0221fe 100644 --- a/picard/item.py +++ b/picard/item.py @@ -227,6 +227,31 @@ class MetadataItem(Item): return changed + def _update_imagelist_state(self, state): + from picard.track import Track + from picard.util.imagelist import ( + ImageList, + _process_images, + ) + + changed = False + for src_obj in state.sources: + _process_images(state, src_obj, Track) + + if state.update_new_metadata: + updated_images = ImageList(state.new_images.values()) + changed |= updated_images.hash_dict().keys() != self.metadata.images.hash_dict().keys() + self.metadata.images = updated_images + self.metadata.has_common_images = state.has_common_new_images + + if state.update_orig_metadata: + updated_images = ImageList(state.orig_images.values()) + changed |= updated_images.hash_dict().keys() != self.orig_metadata.images.hash_dict().keys() + self.orig_metadata.images = updated_images + self.orig_metadata.has_common_images = state.has_common_orig_images + + return changed + def metadataitem_update_metadata_images(self): """Update the metadata images of the current object based on its children. @@ -240,12 +265,9 @@ class MetadataItem(Item): Returns: bool: True, if images where changed, False otherwise """ - from picard.util.imagelist import ( - _get_state, - _update_state, - ) + from picard.util.imagelist import _get_state - return _update_state(self, _get_state(self)) + return self._update_imagelist_state(_get_state(self)) class FileListItem(MetadataItem): diff --git a/picard/util/imagelist.py b/picard/util/imagelist.py index a7f5d29da..568f5d001 100644 --- a/picard/util/imagelist.py +++ b/picard/util/imagelist.py @@ -140,28 +140,6 @@ def _process_images(state, src_obj, Track): state.first_orig_obj = False -def _update_state(obj, state): - from picard.track import Track - - changed = False - for src_obj in state.sources: - _process_images(state, src_obj, Track) - - if state.update_new_metadata: - updated_images = ImageList(state.new_images.values()) - changed |= updated_images.hash_dict().keys() != obj.metadata.images.hash_dict().keys() - obj.metadata.images = updated_images - obj.metadata.has_common_images = state.has_common_new_images - - if state.update_orig_metadata: - updated_images = ImageList(state.orig_images.values()) - changed |= updated_images.hash_dict().keys() != obj.orig_metadata.images.hash_dict().keys() - obj.orig_metadata.images = updated_images - obj.orig_metadata.has_common_images = state.has_common_orig_images - - return changed - - # TODO: use functools.singledispatch when py3 is supported def _get_state(obj): from picard.album import Album