Reduce the number of metadata image updates when dropping an image

Disable/enable the update of images also before/after setting a dropped image
This commit is contained in:
Antonio Larrosa
2017-03-08 11:18:23 +01:00
parent e2e2ca39a6
commit 270b07d08a
2 changed files with 11 additions and 3 deletions

View File

@@ -85,6 +85,11 @@ class Album(DataObject, Item):
for file in self.unmatched_files.iterfiles():
yield file
def enable_update_metadata_images(self, enabled):
self.update_metadata_images_enabled = enabled
if enabled:
self.update_metadata_images()
def append_album_artist(self, id):
"""Append artist id to the list of album artists
and return an AlbumArtist instance"""
@@ -256,7 +261,7 @@ class Album(DataObject, Item):
self._tracks_loaded = True
if not self._requests:
self.update_metadata_images_enabled = False
self.enable_update_metadata_images(False)
# Prepare parser for user's script
if config.setting["enable_tagger_scripts"]:
for s_pos, s_name, s_enabled, s_text in config.setting["list_of_scripts"]:
@@ -288,8 +293,8 @@ class Album(DataObject, Item):
self.loaded = True
self.status = None
self.match_files(self.unmatched_files.files)
self.update_metadata_images_enabled = True
self.update()
self.enable_update_metadata_images(True)
self.tagger.window.set_statusbar_message(
N_('Album %(id)s loaded: %(artist)s - %(album)s'),
{

View File

@@ -313,7 +313,7 @@ class CoverArtBox(QtGui.QGroupBox):
return
if isinstance(self.item, Album):
album = self.item
album.metadata.set_front_image(coverartimage)
album.enable_update_metadata_images(False)
for track in album.tracks:
track.metadata.set_front_image(coverartimage)
track.metadata_images_changed.emit()
@@ -321,14 +321,17 @@ class CoverArtBox(QtGui.QGroupBox):
file.metadata.set_front_image(coverartimage)
file.metadata_images_changed.emit()
file.update()
album.enable_update_metadata_images(True)
elif isinstance(self.item, Track):
track = self.item
track.album.enable_update_metadata_images(False)
track.metadata.set_front_image(coverartimage)
track.metadata_images_changed.emit()
for file in track.iterfiles():
file.metadata.set_front_image(coverartimage)
file.metadata_images_changed.emit()
file.update()
track.album.enable_update_metadata_images(True)
elif isinstance(self.item, File):
file = self.item
file.metadata.set_front_image(coverartimage)