musicbrainz/picard — pull request #383 by phw (2014-12-04 15:48:29+00:00)
Title: Ignore special tracks for completeness

This adds an option to ignore some track types for determining the completeness of an album. This makes it easier for a user to see completed albums and ignore tracks she doesn't care about. Currently the user can choose to ignore:

* Video tracks
* Data tracks
* Pregap tracks
* Silent tracks

In addition this PR adds some more changes to simplify the work with those tracks:

1. Video and data tracks get a different icon instead of the default musical note icon (in case a track is both a data and a video track the video icon gets precedence)
2. Adds a `$is_complete()` tagger script function
3. Sets a `~video` tagger script variable for video tracks

This PR will fix [PICARD-514](http://tickets.musicbrainz.org/browse/PICARD-514) and [PICARD-652](http://tickets.musicbrainz.org/browse/PICARD-652)

This PR **is not ready for merging** due to the new icons. I have added icons from the Tango icon set for the track types because this is the icon set the current note icon is taken from. But I think the icons are a) really ugly and b) make the UI way too noisy. But since I am not very talented in designing icons and I am not sure when I will find the time to look for nicer icons with an acceptable license I just publish the code here and **ask you all for help** :)

Some notes about the `$is_complete()` function: This is somewhat similar to the `$isperfectalbum` function @Sophist-UK proposed in [PICARD-637](http://tickets.musicbrainz.org/browse/PICARD-637). But I deliberately decided not to add the special logic of having only one matched file per track. I think this is a different change which should be discussed separately. For me it was important that `$is_complete()` and the visual representation of the completeness are identical.