We had a space-separated list of name,value tuples ("Album 0.5 Other 0.4"),
and two helper functions to load and save data in the correct format
(`load_release_type_scores` and `save_release_type_scores`).
Since option is converted to recently-introduced ListOption, data is now saved
as a list of tuples, eventually converted to dict when needed.
It simplifies code, and also prevents an issue if it comes we have a release group type
with a space in its name.
An upgrade hook was added to handle this change on Picard upgrade.
Since contexts are used in attributes.pot, and python gettext do not yet
support contexts, a minor hack is used to make it work, this workaround
is used in django and babel, see ugettext_ctxt().
It retrieves and parses attributes.pot and countries.pot files
from transifex to extract various constants needed in Picard.
It helps to keep those in sync with MusicBrainz website.
It then generates:
- picard/attributes.py containing cover art types, medium formats, and release group types
- picard/countries.py containing countries
`update_constants` command replaces `update_countries`
Recordings don't support sub-second time precision, so the
track.metadata.length used for the two Add...AsRelease classes will
cause an error on /recording/create's "length" field.
track.metadata["~length"] contains the time converted to mm:ss format
and will not cause the error on /recording/create, so this commit
changes AddFileAsRecording to use that.
1. Add consistent set of StatusTips / ToolTips
2. Move Refresh from View to Tools (its an action not changing view)
3. Rename and resequence Help menu.
4. Make sequence of files in a directory in Unmatched files be alphabetical (which should match album track sequence)
5. Make History text more consistent and user friendly and add Remove Album message.
6. Add Open Collection in Browser and reload collection if user details are changed in options
The problem with ID3Metadata is that it changes the behavior of
Metadata methods in undesirable ways (see PR #273).
This adds a new_metadata property to File classes which returns a copy
with the values modified as they'd be displayed/saved. This should more
composable and less error-prone than overriding Metadata methods across
the board.