diff --git a/NEWS.txt b/NEWS.txt index dc9ba96f9..7bd9ba336 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -15,6 +15,7 @@ * Refresh of Albums using Ctrl-R is now more responsive during batch lookups. * Main window is now emitting a "selection_updated" signal, plugin api version bumps to 1.3.0 * Append system information to user-agent string + * Compilation tag/variable aligned with iTunes, set only for Various Artists type compilations. Version 1.2 - 2013-03-30 * Picard now requires at least Python 2.6 diff --git a/picard/album.py b/picard/album.py index c41fdfab3..3b4eb6374 100644 --- a/picard/album.py +++ b/picard/album.py @@ -194,8 +194,8 @@ class Album(DataObject, Item): return if not self._tracks_loaded: - artists = set() totalalbumtracks = 0 + va = self._new_metadata['musicbrainz_albumartistid'] == VARIOUS_ARTISTS_ID djmix_ars = {} if hasattr(self._new_metadata, "_djmix_ars"): @@ -221,7 +221,8 @@ class Album(DataObject, Item): track._customize_metadata() self._new_metadata.length += tm.length - artists.add(tm["musicbrainz_artistid"]) + if va: + tm["compilation"] = "1" # Run track metadata plugins try: @@ -233,8 +234,6 @@ class Album(DataObject, Item): for track in self._new_tracks: track.metadata["~totalalbumtracks"] = totalalbumtracks - if len(artists) > 1: - track.metadata["compilation"] = "1" del self._release_node self._tracks_loaded = True diff --git a/picard/util/tags.py b/picard/util/tags.py index 9d099fa0d..fb86d532f 100644 --- a/picard/util/tags.py +++ b/picard/util/tags.py @@ -66,7 +66,7 @@ TAG_NAMES = { 'acoustid_fingerprint': N_('AcoustID Fingerprint'), 'discid': N_('Disc Id'), 'website': N_('Website'), - 'compilation': N_('Compilation'), + 'compilation': N_('Compilation (iTunes)'), 'comment:': N_('Comment'), 'genre': N_('Genre'), 'encodedby': N_('Encoded By'),