This extends the coverart plugin to provide an options page so users can
configure which cover art provider they want to use and, in case of the
CAA, which image sizes and image types to download.
There were a few annoyances I had with the current code...
1. The indirection surrounding the __get and __set methods is a chore to
read when trying to debug things.
2. It implemented methods like keys, pop, __contains__, __delitem__, and
__repr__ that duplicated the default dict functionality.
3. Other modules were accessing _items to work around certain behavior,
which wasn't ideal.
The current metadata object will always be empty, and the new one will be
otherwise garbage collected. There are also no places in the code where a
reference to the old metadata object would be stored, other than
file.metadata.
Calling setCurrentIndex from currentChanged causes an infinite loop, breaking
the UI. But without that line, there are other very strange effects: see
PICARD-248. The only thing that currentChanged was added for was to make sure
the next item is selected after something is removed, so that keyboard
navigation is easier. This implements a new workaround for that without using
currentChanged.
This is a bug introduced with fc7470eee0:
When saving multiple images with the generic filename, only odd numbers
would be appended to the filename, because the "while exists(foo)" check
is always true for every image except the first one at least once,
causing "i" to be incremented twice for every image (except for the
first one).
Fixes an issue from the previous commit where I used _ as a temp
variable name. It only broke the infodialog, but I'm replacing it
everywhere just to be safe.
This changes the meaning of the "language" tag. It is now no longer
derived from the text representation language of the release, but from
the lyrics language of the linked work(s).
The text representation language of the release is still available (e.g.
for scripting/plugins) as %_releaselanguage%. To get the old behavior
back, one must insert this line at the beginning of the scripting field:
$set(language,%_releaselanguage%)
http://tickets.musicbrainz.org/browse/PICARD-242