diff --git a/picard/album.py b/picard/album.py index 3820f40ca..291d4f708 100644 --- a/picard/album.py +++ b/picard/album.py @@ -459,7 +459,7 @@ class Album(DataObject, Item): if not self.tracks: return False for track in self.tracks: - if track.num_linked_files != 1: + if not track.is_complete(): return False else: return True diff --git a/picard/const/__init__.py b/picard/const/__init__.py index ae9608beb..89f7701bf 100644 --- a/picard/const/__init__.py +++ b/picard/const/__init__.py @@ -67,6 +67,10 @@ PICARD_URLS = { # Various Artists MBID VARIOUS_ARTISTS_ID = '89ad4ac3-39f7-470e-963a-56509c546377' +# Special purpose track titles +SILENCE_TRACK_TITLE = '[silence]' +DATA_TRACK_TITLE = '[data track]' + # Release formats from picard.const.attributes import MB_ATTRIBUTES RELEASE_FORMATS = {} diff --git a/picard/mbxml.py b/picard/mbxml.py index 0368b808d..9cc758353 100644 --- a/picard/mbxml.py +++ b/picard/mbxml.py @@ -284,6 +284,8 @@ def recording_to_metadata(node, track): add_isrcs_to_metadata(nodes[0], m) elif name == 'user_rating': m['~rating'] = nodes[0].text + elif name == 'video' and nodes[0].text == 'true': + m['~video'] = '1' m['~length'] = format_time(m.length) diff --git a/picard/resources.py b/picard/resources.py index 04036569e..7b5c03bfd 100644 --- a/picard/resources.py +++ b/picard/resources.py @@ -2,8 +2,8 @@ # Resource object code # -# Created: ven. juil. 18 23:11:29 2014 -# by: The Resource Compiler for PyQt (Qt v4.8.2) +# Created: Mo. Jan 26 23:13:10 2015 +# by: The Resource Compiler for PyQt (Qt v4.8.6) # # WARNING! All changes made in this file will be lost! @@ -36,6 +36,39 @@ qt_resource_data = "\ \x9b\x3c\x71\x95\x28\x7f\xf3\x9d\xed\x85\x7d\x96\xfa\xc9\xc9\x79\ \xf7\x20\x68\x4d\x1f\x7a\xed\x1f\x2d\x49\x58\xba\x4e\x19\x3c\x81\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\xec\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ +\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ +\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x69\x49\x44\ +\x41\x54\x38\x8d\x8d\xd3\xbb\x6a\xd4\x51\x10\x06\xf0\xdf\x97\xb8\ +\x10\x04\xb3\xc6\x4b\x20\x44\xb0\xd3\xe0\x05\x2f\xa5\x12\x10\x0b\ +\x09\x58\x49\x34\x9d\x68\xe1\x13\x58\xfb\x1e\x92\x36\x2f\x60\xa1\ +\x68\x6b\xa7\x45\x0a\xd1\x66\x0b\x31\x82\x22\x42\x1a\x6f\x88\xa8\ +\x78\x2c\x76\xd4\xdd\xbf\x2c\x3a\x30\xcc\x99\xdb\x77\x86\xef\xcc\ +\xd1\x5a\x83\x0d\xb4\x7f\xe8\x26\x2e\xb5\xd6\x8c\xaa\x02\x18\xe0\ +\x06\x96\x26\xe8\x0b\xac\xe3\x33\xae\x8d\x02\x4c\xf9\x23\xaf\xf1\ +\x09\xb3\xad\xb5\x01\x96\xca\xbe\xc3\x34\xee\xe0\x32\x6e\x27\xb9\ +\xfa\xab\x69\x14\x00\x8e\xe2\x70\x92\x3e\x66\x2a\x76\xbc\x00\xe6\ +\x5b\x6b\xf7\xb1\x86\xf5\x24\xe7\x60\x47\x07\x60\x16\xdf\xf1\x0d\ +\xbd\x24\xbd\x8a\x35\x9c\x4f\xb2\xa7\xea\x1e\xe1\x26\x1e\x76\x01\ +\xee\x61\x11\x3f\xf0\x0a\x87\x70\x17\x47\x70\x16\x2b\x55\xd7\xaf\ +\xba\x31\x12\x57\xd0\xc3\xde\x8a\x2d\x94\x9d\xc2\x62\x9d\xe7\xcb\ +\x5f\xc1\xa0\x4b\x22\xec\xc7\xc5\x3a\x5f\x2f\x7b\x01\x27\x93\xcc\ +\x61\x15\xbb\x46\x1b\xc6\x00\x5a\x6b\x6f\xf0\xb5\xdc\xad\xb2\x3d\ +\xec\xac\xb1\xb7\x74\x64\x0c\x20\xc9\x09\x4c\x27\xd9\x57\xf6\x14\ +\x9e\xe1\xa3\xe1\x33\xf7\x8b\x8f\xb1\x5b\x7f\x73\xd0\xdd\xb2\x49\ +\x3a\x91\x83\x24\xcb\x49\xd6\x32\x94\x5b\x15\x3b\x93\x64\x35\xc9\ +\x4c\x92\x2b\x49\x96\x47\x7b\xba\xcf\xb8\xbb\xc6\x9c\xc7\xf3\x8a\ +\xcd\x55\xdd\xe9\xca\x7f\x31\xdc\x93\xbf\x39\xc0\x36\xde\xe3\x03\ +\x16\x8a\x83\xb7\x08\x1e\x57\x6e\x7b\xd2\x04\x07\xf0\xd2\x70\xf7\ +\x0f\xe2\xc1\x48\xee\x89\xe1\x52\x3d\x2d\xff\x58\x97\xc4\xff\xf9\ +\xce\x5d\xdd\x68\xad\xf9\x09\xc0\x15\xad\x77\x52\xd4\x5b\xb1\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x40\x8c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -1201,6 +1234,33 @@ qt_resource_data = "\ \x01\x03\x83\x2f\x12\x7b\x33\x71\x56\x8c\x2a\xc0\x12\xd4\xb0\xd0\ \x43\x06\x8c\x14\xc7\x26\x00\xbe\x5b\x05\xd6\xa8\x8e\xff\x70\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\x84\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ +\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ +\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x01\x49\x44\ +\x41\x54\x38\x8d\x8d\xd2\xbf\x2e\x83\x61\x14\xc7\xf1\xcf\xa1\x0c\ +\x22\x12\x8b\x84\x45\x68\x37\x4b\x17\x37\x20\x8d\x98\x48\xcc\x46\ +\x26\x37\xe0\x0a\x8c\x26\x2e\xa4\x83\x8d\xc4\x68\x63\x30\x35\x92\ +\x86\x20\x31\x11\x89\x8d\x1c\x83\x36\x79\x55\xdf\xb7\xfd\x25\x27\ +\x4f\xce\xc9\xf3\xfb\x9e\xf3\xfc\x89\xcc\x34\xae\x22\xa2\x8e\x9d\ +\x5e\xac\xa1\x55\x1b\x61\x08\xac\x0f\x98\x8a\x6a\x0e\x05\x44\xc4\ +\x34\x4e\xb0\x8b\xc5\xaa\x26\x65\x13\xec\xe3\xb0\xca\xd8\xd7\x44\ +\x49\x7d\x6e\x1c\x73\x15\xa0\x4c\x8f\x38\x45\x0b\xf7\x94\x1f\xa1\ +\xa8\x5b\xb4\xd1\xce\xcc\x9b\x7e\x31\x22\xbe\x47\x01\x3a\xd8\xcc\ +\xcc\x87\x2a\x7a\xd5\x11\xde\x46\x99\x47\x01\xfe\x29\x22\xa6\x22\ +\xe2\xcf\xb3\x8e\x05\x88\x88\x46\x44\x5c\xe2\x03\x2f\x11\xf1\x8a\ +\x65\xe4\x38\x97\x08\xc7\xd8\x28\xe4\x0b\xbd\xf5\xab\xd6\xeb\xb0\ +\x8a\x6d\x34\xf1\x8c\xc6\x00\xe0\xdc\xef\xaf\x9c\x2c\xd4\x9e\x70\ +\x01\x75\x7c\x22\x07\xe2\x3a\x33\xf5\x03\x2b\xd8\xc3\x11\xb6\x30\ +\x9b\x99\x6a\x58\xc2\xcc\x90\xb1\x3b\xc5\x24\x33\xbb\xe8\xfe\xdb\ +\xd5\xa3\x1f\xe0\x0a\xef\xb8\xc3\x19\xe6\x8b\x13\x94\xc5\x0f\x6c\ +\x71\x60\x2c\xa4\xe9\xa5\x5d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ \x00\x00\x06\xf4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -1373,35 +1433,6 @@ qt_resource_data = "\ \x52\x91\xd8\xb3\xa9\xe4\x06\xaa\xfb\x62\x36\x86\x02\x46\x8a\x63\ \x13\x00\x29\x51\x09\x03\x00\x20\x62\x2f\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ -\x00\x00\x01\xa3\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\ -\x0d\xd7\x01\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd5\x04\x1c\x0b\x36\x39\xbb\x24\x9f\x47\x00\x00\x01\x30\x49\x44\ -\x41\x54\x38\xcb\x63\x60\xa0\x10\x30\x62\x13\x2c\xad\x35\xed\x67\ -\x60\xfa\x5a\x40\x48\x33\x13\x13\xc7\x5e\x16\xec\x32\x5f\x0b\x82\ -\x83\x02\x09\xda\xbe\x76\xdd\x7a\x67\x26\x6c\x12\xff\xff\x33\x7e\ -\x23\xd6\x0b\x2c\x04\x6c\xc0\x2a\xfe\xff\x1f\xc3\xbf\x90\x90\x40\ -\x26\x82\x06\x30\x30\x30\x30\x74\x37\x5e\xc3\x08\xa7\x92\x3a\xed\ -\xef\x0c\x0c\x0c\x1c\x0c\x0c\x0c\x0c\x4c\x64\x06\xfe\x3f\x78\x70\ -\x61\x8d\x1a\xc6\xff\x5c\x78\xa3\x0e\x49\x9e\x89\xd2\x74\x40\x56\ -\x2c\x20\xcb\xb3\x30\x30\x30\x30\x64\x15\x5a\x48\x32\xb3\xfc\x89\ -\xfd\xf1\xfd\xbb\x93\x80\xf0\x7f\x77\x06\x86\xff\x0c\xbf\xfe\x7c\ -\x86\x6b\xc0\x27\xcf\xc2\xc0\xc0\xc0\xf0\xf9\xd3\xa7\x3a\x35\x2d\ -\xb6\x0c\x13\x33\x55\x06\x7e\x5e\x75\x06\x7e\x6e\x65\x86\x7b\x4f\ -\xd7\x32\x88\x89\x73\x32\x10\x92\x67\x61\x60\x60\x60\x90\x90\x61\ -\xc8\xb0\xb7\xb7\x66\xf8\xf7\xef\x0f\x03\x33\x33\x3b\xc3\xdd\x27\ -\x6b\x18\x2e\x9d\x7f\xfd\xff\xcd\xeb\xff\x5b\xf1\xc9\xbf\x7a\xc1\ -\xd4\x00\x4f\x07\xf7\x1e\x9e\x67\xe0\xe0\x60\x61\xe0\xe7\x7b\xcb\ -\x70\xf3\xfa\x5b\x86\x77\x6f\xff\x5e\x3c\x7d\xec\x43\x17\x3e\xf9\ -\xb3\x27\xdf\xee\x87\x27\x92\xc4\x4c\xb5\xdb\x22\x62\x2c\x2a\x0c\ -\x0c\x0c\x0c\xb7\xaf\xff\x5c\xb4\x61\xd5\xdd\x78\xe4\x80\x43\x97\ -\x97\x57\x94\xa8\x98\xd8\x79\xf4\x39\xa5\xb1\xc8\x00\x00\xbd\x75\ -\x89\xf9\x6f\x29\x4a\x9e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ \x00\x00\x00\xbc\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -1501,6 +1532,33 @@ qt_resource_data = "\ \x23\xb1\x27\x12\xe7\x8b\x21\xa1\x00\xcd\x9b\x13\x31\x14\x30\x52\ \x1c\x9b\x00\xca\x15\x09\x34\x69\x85\x73\x4d\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\x8a\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ +\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ +\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x07\x49\x44\ +\x41\x54\x38\x8d\xad\xd3\x31\x4b\x83\x41\x0c\xc6\xf1\x5f\xb4\x20\ +\x88\x42\xb1\x3a\x08\x05\x07\x71\x55\xa1\x93\x83\x7b\x11\x97\x22\ +\xee\x82\xa8\xbb\x83\x1f\xc3\x55\xd0\xb1\x83\x83\xb8\xfa\x11\x9c\ +\x3b\x76\x71\x10\x1d\xc5\x49\x2c\x82\x72\x0e\xbd\xc2\x4b\xf1\xad\ +\x2d\x1a\x38\x2e\x90\xe4\xb9\xfc\x73\x24\x52\x4a\xfe\x62\x81\x5d\ +\x1c\x61\x66\xc2\xda\x0f\x5c\x05\x5e\x70\x89\x47\x9c\xe3\x0e\xb7\ +\x25\x45\x7b\xd8\xc1\x29\x56\x70\x0c\x09\xd5\x8c\xd2\x41\x33\xa5\ +\xe4\xa7\x83\x26\x3a\xd9\xaf\x22\x55\xb2\x72\x3b\x22\x9e\xb1\x3e\ +\x46\xeb\xeb\x11\x71\x81\x3a\x4c\x4d\x02\x5d\x66\xff\x82\x70\x16\ +\x11\x8f\x58\xc3\x61\x44\x54\x4b\x1e\xdb\xc3\x5a\x44\x9c\xe8\x0f\ +\x51\xa5\x10\x78\xc5\x2c\xb6\x31\x5f\x22\xb0\x99\x73\x0e\xb0\x50\ +\x44\x58\xce\x6d\x75\xd1\x1a\x81\xd0\x42\x37\xfb\xcb\x45\x84\xad\ +\x88\x78\x40\x0d\xbd\x11\xf3\xea\xa1\x16\x11\x1b\x58\x2d\x22\x5c\ +\xe3\x33\xb7\xf7\x9b\x2d\xe2\x7e\x50\x3b\xf8\xc6\x06\x96\xf0\x34\ +\x86\xc0\x53\xce\x6d\x0c\x04\x86\xb7\xa9\x3e\xa2\x78\x38\x96\x02\ +\x6d\xec\xe3\x4b\x1f\xe1\x0b\x6f\x25\x02\x73\x98\xc6\x7b\xbe\x6f\ +\xe2\xaf\xeb\xfc\x0d\xa4\xae\x7b\x37\x08\x76\x75\x73\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -9643,6 +9701,10 @@ qt_resource_name = "\ \x00\xe0\x1d\x47\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x2d\x00\x70\x00\x65\x00\x6e\x00\x64\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0e\ +\x08\x53\x8e\xe7\ +\x00\x74\ +\x00\x72\x00\x61\x00\x63\x00\x6b\x00\x2d\x00\x64\x00\x61\x00\x74\x00\x61\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x08\xc2\x5a\x27\ \x00\x43\ @@ -9669,6 +9731,10 @@ qt_resource_name = "\ \x00\x36\x9b\x62\ \x00\x33\ \x00\x32\x00\x78\x00\x33\x00\x32\ +\x00\x0f\ +\x05\xff\xc8\x27\ +\x00\x74\ +\x00\x72\x00\x61\x00\x63\x00\x6b\x00\x2d\x00\x61\x00\x75\x00\x64\x00\x69\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x05\ \x00\x37\xfb\x78\ \x00\x34\ @@ -9695,10 +9761,6 @@ qt_resource_name = "\ \x00\x6d\ \x00\x61\x00\x74\x00\x63\x00\x68\x00\x2d\x00\x70\x00\x65\x00\x6e\x00\x64\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x36\x00\x30\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x06\xa8\x59\xe7\ -\x00\x6e\ -\x00\x6f\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x05\ \x00\x35\x9b\x52\ \x00\x32\ @@ -9725,6 +9787,10 @@ qt_resource_name = "\ \x00\x6d\ \x00\x61\x00\x74\x00\x63\x00\x68\x00\x2d\x00\x70\x00\x65\x00\x6e\x00\x64\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x38\x00\x30\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ +\x00\x0f\ +\x05\xbf\x20\xa7\ +\x00\x74\ +\x00\x72\x00\x61\x00\x63\x00\x6b\x00\x2d\x00\x76\x00\x69\x00\x64\x00\x65\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x05\ \x00\x34\xdb\x46\ \x00\x31\ @@ -9871,75 +9937,77 @@ qt_resource_name = "\ qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x1a\x00\x00\x00\x02\ -\x00\x00\x02\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x57\x19\ -\x00\x00\x02\x8c\x00\x02\x00\x00\x00\x12\x00\x00\x00\x34\ -\x00\x00\x01\xce\x00\x02\x00\x00\x00\x13\x00\x00\x00\x21\ -\x00\x00\x00\x12\x00\x02\x00\x00\x00\x01\x00\x00\x00\x20\ -\x00\x00\x00\xe0\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1f\ -\x00\x00\x00\xf0\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1e\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x02\ +\x00\x00\x02\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x58\xea\ +\x00\x00\x02\xe0\x00\x02\x00\x00\x00\x12\x00\x00\x00\x36\ +\x00\x00\x01\xfe\x00\x02\x00\x00\x00\x13\x00\x00\x00\x23\ +\x00\x00\x00\x12\x00\x02\x00\x00\x00\x01\x00\x00\x00\x22\ +\x00\x00\x01\x02\x00\x02\x00\x00\x00\x01\x00\x00\x00\x21\ +\x00\x00\x01\x36\x00\x02\x00\x00\x00\x01\x00\x00\x00\x20\ \x00\x00\x00\x22\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x02\xde\x00\x00\x00\x00\x00\x01\x00\x00\x5c\xbd\ -\x00\x00\x02\xba\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xea\ -\x00\x00\x00\x72\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1d\ -\x00\x00\x00\xcc\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1c\ -\x00\x00\x01\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x53\xf6\ -\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x49\x37\ +\x00\x00\x03\x32\x00\x00\x00\x00\x00\x01\x00\x00\x60\x1c\ +\x00\x00\x03\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x49\ +\x00\x00\x00\x94\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1f\ +\x00\x00\x00\xee\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1e\ +\x00\x00\x02\xbc\x00\x00\x00\x00\x00\x01\x00\x00\x5c\xed\ +\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x00\x4b\xd7\ +\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x27\ \x00\x00\x00\x48\x00\x00\x00\x00\x00\x01\x00\x00\x01\x81\ -\x00\x00\x02\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x50\ -\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x42\x11\ -\x00\x00\x01\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x56\x5d\ -\x00\x00\x01\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x53\x2b\ -\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x51\x9f\ -\x00\x00\x02\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x72\ -\x00\x00\x01\x00\x00\x00\x00\x00\x00\x01\x00\x00\x49\xe7\ -\x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x5b\x1c\ -\x00\x00\x02\x40\x00\x00\x00\x00\x00\x01\x00\x00\x59\x7e\ -\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00\x55\x9d\ -\x00\x00\x01\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x52\x58\ -\x00\x00\x01\x20\x00\x00\x00\x00\x00\x01\x00\x00\x50\xdf\ -\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x01\x07\x26\ -\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x01\xf2\x73\ -\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x00\xe9\x46\ -\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x00\xfc\xd9\ -\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x02\x49\xb0\ -\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x00\xdb\xe2\ -\x00\x00\x04\x2c\x00\x00\x00\x00\x00\x01\x00\x00\xac\xba\ -\x00\x00\x06\x54\x00\x00\x00\x00\x00\x01\x00\x00\x9b\x25\ -\x00\x00\x06\xd8\x00\x00\x00\x00\x00\x01\x00\x00\xbf\xae\ -\x00\x00\x05\x5e\x00\x00\x00\x00\x00\x01\x00\x00\xcc\xd9\ -\x00\x00\x07\x02\x00\x00\x00\x00\x00\x01\x00\x00\xc2\x85\ -\x00\x00\x06\x28\x00\x00\x00\x00\x00\x01\x00\x00\x92\xa2\ -\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x95\xfa\ -\x00\x00\x03\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x9d\xfa\ -\x00\x00\x06\x78\x00\x00\x00\x00\x00\x01\x00\x00\xa3\x90\ -\x00\x00\x07\x52\x00\x00\x00\x00\x00\x01\x00\x00\xe1\x57\ -\x00\x00\x04\x54\x00\x00\x00\x00\x00\x01\x00\x00\xb0\xa7\ -\x00\x00\x03\x94\x00\x00\x00\x00\x00\x01\x00\x00\x97\xfe\ -\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x00\xc8\xd4\ -\x00\x00\x06\x06\x00\x00\x00\x00\x00\x01\x00\x00\xe4\x6d\ -\x00\x00\x04\x9a\x00\x00\x00\x00\x00\x01\x00\x00\xba\x49\ -\x00\x00\x06\xaa\x00\x00\x00\x00\x00\x01\x00\x00\xb6\x1b\ -\x00\x00\x07\x2a\x00\x00\x00\x00\x00\x01\x00\x00\xd6\xeb\ -\x00\x00\x05\xb6\x00\x00\x00\x00\x00\x01\x00\x00\xd2\x69\ -\x00\x00\x03\xae\x00\x00\x00\x00\x00\x01\x00\x00\x64\x3b\ -\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x00\x8c\xb0\ -\x00\x00\x04\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x6e\x2b\ -\x00\x00\x05\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x82\x3c\ -\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x60\x89\ -\x00\x00\x05\x98\x00\x00\x00\x00\x00\x01\x00\x00\x85\xf2\ -\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x79\xe2\ -\x00\x00\x03\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x63\ -\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x00\x66\xea\ -\x00\x00\x04\x54\x00\x00\x00\x00\x00\x01\x00\x00\x70\x48\ -\x00\x00\x03\x94\x00\x00\x00\x00\x00\x01\x00\x00\x62\x45\ -\x00\x00\x05\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x80\x07\ -\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x00\x77\x58\ -\x00\x00\x03\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x5e\x39\ -\x00\x00\x06\x06\x00\x00\x00\x00\x00\x01\x00\x00\x90\x57\ -\x00\x00\x04\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x74\x04\ -\x00\x00\x05\x16\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x76\ -\x00\x00\x05\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x89\x1d\ +\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x03\x71\ +\x00\x00\x02\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x5c\x21\ +\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x44\x01\ +\x00\x00\x02\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x58\x2e\ +\x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x56\xa3\ +\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x00\x55\x17\ +\x00\x00\x03\x52\x00\x00\x00\x00\x00\x01\x00\x00\x60\xd1\ +\x00\x00\x01\x46\x00\x00\x00\x00\x00\x01\x00\x00\x4d\x5f\ +\x00\x00\x02\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x5e\x7b\ +\x00\x00\x02\x70\x00\x00\x00\x00\x00\x01\x00\x00\x5b\x4f\ +\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x57\x6e\ +\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x55\xd0\ +\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x54\x57\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x01\x0a\x85\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x01\xf5\xd2\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x00\xec\xa5\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x01\x00\x38\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x02\x4d\x0f\ +\x00\x00\x06\x32\x00\x00\x00\x00\x00\x01\x00\x00\xdf\x41\ +\x00\x00\x04\x80\x00\x00\x00\x00\x00\x01\x00\x00\xb0\x19\ +\x00\x00\x06\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x9e\x84\ +\x00\x00\x07\x2c\x00\x00\x00\x00\x00\x01\x00\x00\xc3\x0d\ +\x00\x00\x05\xb2\x00\x00\x00\x00\x00\x01\x00\x00\xd0\x38\ +\x00\x00\x07\x56\x00\x00\x00\x00\x00\x01\x00\x00\xc5\xe4\ +\x00\x00\x06\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x96\x01\ +\x00\x00\x03\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x99\x59\ +\x00\x00\x04\x4c\x00\x00\x00\x00\x00\x01\x00\x00\xa1\x59\ +\x00\x00\x06\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xa6\xef\ +\x00\x00\x07\xa6\x00\x00\x00\x00\x00\x01\x00\x00\xe4\xb6\ +\x00\x00\x04\xa8\x00\x00\x00\x00\x00\x01\x00\x00\xb4\x06\ +\x00\x00\x03\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x9b\x5d\ +\x00\x00\x05\x22\x00\x00\x00\x00\x00\x01\x00\x00\xcc\x33\ +\x00\x00\x06\x5a\x00\x00\x00\x00\x00\x01\x00\x00\xe7\xcc\ +\x00\x00\x04\xee\x00\x00\x00\x00\x00\x01\x00\x00\xbd\xa8\ +\x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x00\xb9\x7a\ +\x00\x00\x07\x7e\x00\x00\x00\x00\x00\x01\x00\x00\xda\x4a\ +\x00\x00\x06\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xd5\xc8\ +\x00\x00\x04\x02\x00\x00\x00\x00\x00\x01\x00\x00\x67\x9a\ +\x00\x00\x06\x32\x00\x00\x00\x00\x00\x01\x00\x00\x90\x0f\ +\x00\x00\x04\x80\x00\x00\x00\x00\x00\x01\x00\x00\x71\x8a\ +\x00\x00\x05\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x85\x9b\ +\x00\x00\x03\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x63\xe8\ +\x00\x00\x05\xec\x00\x00\x00\x00\x00\x01\x00\x00\x89\x51\ +\x00\x00\x05\x44\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x41\ +\x00\x00\x04\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x6d\xc2\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x49\ +\x00\x00\x04\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x73\xa7\ +\x00\x00\x03\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x65\xa4\ +\x00\x00\x05\x90\x00\x00\x00\x00\x00\x01\x00\x00\x83\x66\ +\x00\x00\x05\x22\x00\x00\x00\x00\x00\x01\x00\x00\x7a\xb7\ +\x00\x00\x03\x80\x00\x00\x00\x00\x00\x01\x00\x00\x61\x98\ +\x00\x00\x06\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x93\xb6\ +\x00\x00\x04\xee\x00\x00\x00\x00\x00\x01\x00\x00\x77\x63\ +\x00\x00\x05\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x80\xd5\ +\x00\x00\x06\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x8c\x7c\ " def qInitResources(): diff --git a/picard/script.py b/picard/script.py index 6c5da9ef4..e4cb1c887 100644 --- a/picard/script.py +++ b/picard/script.py @@ -596,9 +596,15 @@ def func_performer(parser, pattern="", join=", "): def func_matchedtracks(parser, arg): - if parser.file: - if parser.file.parent: - return str(parser.file.parent.album.get_num_matched_tracks()) + if parser.file and parser.file.parent: + return str(parser.file.parent.album.get_num_matched_tracks()) + return "0" + + +def func_is_complete(parser): + if (parser.file and parser.file.parent + and parser.file.parent.album.is_complete()): + return "1" return "0" @@ -758,6 +764,7 @@ register_script_function(func_copymerge, "copymerge") register_script_function(func_len, "len") register_script_function(func_performer, "performer") register_script_function(func_matchedtracks, "matchedtracks") +register_script_function(func_is_complete, "is_complete") register_script_function(func_firstalphachar, "firstalphachar") register_script_function(func_initials, "initials") register_script_function(func_firstwords, "firstwords") diff --git a/picard/track.py b/picard/track.py index 0e660a0ab..cfb14d5d6 100644 --- a/picard/track.py +++ b/picard/track.py @@ -25,7 +25,7 @@ from picard.dataobj import DataObject from picard.util.textencoding import asciipunct from picard.mbxml import recording_to_metadata from picard.script import ScriptParser -from picard.const import VARIOUS_ARTISTS_ID +from picard.const import VARIOUS_ARTISTS_ID, SILENCE_TRACK_TITLE, DATA_TRACK_TITLE from picard.ui.item import Item import traceback @@ -113,6 +113,29 @@ class Track(DataObject, Item): return u"%s%s %s" % (prefix, m['tracknumber'].zfill(2), m['title']) return m[column] + def is_video(self): + return self.metadata['~video'] == '1' + + def is_pregap(self): + return self.metadata['~pregap'] == '1' + + def is_data(self): + return self.metadata['~datatrack'] == '1' + + def is_silence(self): + return self.metadata['~silence'] == '1' + + def is_complete(self): + return self.ignored_for_completeness() or self.num_linked_files == 1 + + def ignored_for_completeness(self): + if (config.setting['completeness_ignore_videos'] and self.is_video()) \ + or (config.setting['completeness_ignore_pregap'] and self.is_pregap()) \ + or (config.setting['completeness_ignore_data'] and self.is_data()) \ + or (config.setting['completeness_ignore_silence'] and self.is_silence()): + return True + return False + def _customize_metadata(self): tm = self.metadata @@ -120,6 +143,12 @@ class Track(DataObject, Item): if tm['musicbrainz_artistid'] == VARIOUS_ARTISTS_ID: tm['artistsort'] = tm['artist'] = config.setting['va_name'] + if tm['title'] == DATA_TRACK_TITLE: + tm['~datatrack'] = '1' + + if tm['title'] == SILENCE_TRACK_TITLE: + tm['~silence'] = '1' + if config.setting['folksonomy_tags']: self._convert_folksonomy_tags_to_genre() diff --git a/picard/ui/itemviews.py b/picard/ui/itemviews.py index 39f7ff8ea..dcf7521ec 100644 --- a/picard/ui/itemviews.py +++ b/picard/ui/itemviews.py @@ -109,6 +109,8 @@ class MainPanel(QtGui.QSplitter): TreeItem.window = window TreeItem.base_color = self.palette().base().color() TreeItem.text_color = self.palette().text().color() + TreeItem.text_color_secondary = self.palette() \ + .brush(QtGui.QPalette.Disabled, QtGui.QPalette.Text).color() TrackItem.track_colors = { File.NORMAL: config.setting["color_saved"], File.CHANGED: TreeItem.text_color, @@ -141,7 +143,9 @@ class MainPanel(QtGui.QSplitter): AlbumItem.icon_cd_saved_modified = icontheme.lookup('media-optical-saved-modified', icontheme.ICON_SIZE_MENU) AlbumItem.icon_error = icontheme.lookup('media-optical-error', icontheme.ICON_SIZE_MENU) - TrackItem.icon_note = QtGui.QIcon(":/images/note.png") + TrackItem.icon_audio = QtGui.QIcon(":/images/track-audio.png") + TrackItem.icon_video = QtGui.QIcon(":/images/track-video.png") + TrackItem.icon_data = QtGui.QIcon(":/images/track-data.png") FileItem.icon_file = QtGui.QIcon(":/images/file.png") FileItem.icon_file_pending = QtGui.QIcon(":/images/file-pending.png") FileItem.icon_error = icontheme.lookup('dialog-error', icontheme.ICON_SIZE_MENU) @@ -705,9 +709,17 @@ class TrackItem(TreeItem): icon = FileItem.decide_file_icon(file) self.takeChildren() else: - color = TreeItem.text_color + if track.ignored_for_completeness(): + color = TreeItem.text_color_secondary + else: + color = TreeItem.text_color bgcolor = get_match_color(1, TreeItem.base_color) - icon = TrackItem.icon_note + if track.is_video(): + icon = TrackItem.icon_video + elif track.is_data(): + icon = TrackItem.icon_data + else: + icon = TrackItem.icon_audio oldnum = self.childCount() newnum = track.num_linked_files if oldnum > newnum: # remove old items diff --git a/picard/ui/options/advanced.py b/picard/ui/options/advanced.py index 734e2fea7..114872207 100644 --- a/picard/ui/options/advanced.py +++ b/picard/ui/options/advanced.py @@ -36,6 +36,10 @@ class AdvancedOptionsPage(OptionsPage): options = [ config.TextOption("setting", "ignore_regex", ""), config.BoolOption("setting", "ignore_hidden_files", False), + config.BoolOption("setting", "completeness_ignore_videos", False), + config.BoolOption("setting", "completeness_ignore_pregap", False), + config.BoolOption("setting", "completeness_ignore_data", False), + config.BoolOption("setting", "completeness_ignore_silence", False), ] def __init__(self, parent=None): @@ -47,10 +51,18 @@ class AdvancedOptionsPage(OptionsPage): def load(self): self.ui.ignore_regex.setText(config.setting["ignore_regex"]) self.ui.ignore_hidden_files.setChecked(config.setting["ignore_hidden_files"]) + self.ui.completeness_ignore_videos.setChecked(config.setting["completeness_ignore_videos"]) + self.ui.completeness_ignore_pregap.setChecked(config.setting["completeness_ignore_pregap"]) + self.ui.completeness_ignore_data.setChecked(config.setting["completeness_ignore_data"]) + self.ui.completeness_ignore_silence.setChecked(config.setting["completeness_ignore_silence"]) def save(self): config.setting["ignore_regex"] = unicode(self.ui.ignore_regex.text()) config.setting["ignore_hidden_files"] = self.ui.ignore_hidden_files.isChecked() + config.setting["completeness_ignore_videos"] = self.ui.completeness_ignore_videos.isChecked() + config.setting["completeness_ignore_pregap"] = self.ui.completeness_ignore_pregap.isChecked() + config.setting["completeness_ignore_data"] = self.ui.completeness_ignore_data.isChecked() + config.setting["completeness_ignore_silence"] = self.ui.completeness_ignore_silence.isChecked() def live_checker(self, text): self.ui.regex_error.setStyleSheet("") diff --git a/picard/ui/ui_options_advanced.py b/picard/ui/ui_options_advanced.py index 0b819ff05..0e078d9f5 100644 --- a/picard/ui/ui_options_advanced.py +++ b/picard/ui/ui_options_advanced.py @@ -8,7 +8,16 @@ from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: - _fromUtf8 = lambda s: s + def _fromUtf8(s): + return s + +try: + _encoding = QtGui.QApplication.UnicodeUTF8 + def _translate(context, text, disambig): + return QtGui.QApplication.translate(context, text, disambig, _encoding) +except AttributeError: + def _translate(context, text, disambig): + return QtGui.QApplication.translate(context, text, disambig) class Ui_AdvancedOptionsPage(object): def setupUi(self, AdvancedOptionsPage): @@ -27,14 +36,32 @@ class Ui_AdvancedOptionsPage(object): self.ignore_regex = QtGui.QLineEdit(self.groupBox) self.ignore_regex.setObjectName(_fromUtf8("ignore_regex")) self.gridlayout.addWidget(self.ignore_regex, 2, 0, 1, 1) + self.ignore_hidden_files = QtGui.QCheckBox(self.groupBox) + self.ignore_hidden_files.setObjectName(_fromUtf8("ignore_hidden_files")) + self.gridlayout.addWidget(self.ignore_hidden_files, 4, 0, 1, 1) self.regex_error = QtGui.QLabel(self.groupBox) self.regex_error.setText(_fromUtf8("")) self.regex_error.setObjectName(_fromUtf8("regex_error")) - self.gridlayout.addWidget(self.regex_error, 4, 0, 1, 1) - self.ignore_hidden_files = QtGui.QCheckBox(self.groupBox) - self.ignore_hidden_files.setObjectName(_fromUtf8("ignore_hidden_files")) - self.gridlayout.addWidget(self.ignore_hidden_files, 3, 0, 1, 1) + self.gridlayout.addWidget(self.regex_error, 3, 0, 1, 1) self.vboxlayout.addWidget(self.groupBox) + self.groupBox_completeness = QtGui.QGroupBox(AdvancedOptionsPage) + self.groupBox_completeness.setObjectName(_fromUtf8("groupBox_completeness")) + self.verticalLayout_2 = QtGui.QVBoxLayout(self.groupBox_completeness) + self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) + self.completeness_ignore_videos = QtGui.QCheckBox(self.groupBox_completeness) + self.completeness_ignore_videos.setObjectName(_fromUtf8("completeness_ignore_videos")) + self.verticalLayout_2.addWidget(self.completeness_ignore_videos) + self.completeness_ignore_pregap = QtGui.QCheckBox(self.groupBox_completeness) + self.completeness_ignore_pregap.setObjectName(_fromUtf8("completeness_ignore_pregap")) + self.verticalLayout_2.addWidget(self.completeness_ignore_pregap) + self.completeness_ignore_data = QtGui.QCheckBox(self.groupBox_completeness) + self.completeness_ignore_data.setCheckable(True) + self.completeness_ignore_data.setObjectName(_fromUtf8("completeness_ignore_data")) + self.verticalLayout_2.addWidget(self.completeness_ignore_data) + self.completeness_ignore_silence = QtGui.QCheckBox(self.groupBox_completeness) + self.completeness_ignore_silence.setObjectName(_fromUtf8("completeness_ignore_silence")) + self.verticalLayout_2.addWidget(self.completeness_ignore_silence) + self.vboxlayout.addWidget(self.groupBox_completeness) spacerItem = QtGui.QSpacerItem(181, 21, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.vboxlayout.addItem(spacerItem) @@ -45,4 +72,9 @@ class Ui_AdvancedOptionsPage(object): self.groupBox.setTitle(_("Advanced options")) self.label_ignore_regex.setText(_("Ignore file paths matching the following regular expression:")) self.ignore_hidden_files.setText(_("Ignore hidden files")) + self.groupBox_completeness.setTitle(_("Ignore the following tracks when determining whether a release is complete")) + self.completeness_ignore_videos.setText(_("Video tracks")) + self.completeness_ignore_pregap.setText(_("Pregap tracks")) + self.completeness_ignore_data.setText(_("Data tracks")) + self.completeness_ignore_silence.setText(_("Silent tracks")) diff --git a/resources/images/note.png b/resources/images/note.png deleted file mode 100644 index fd877cb8d..000000000 Binary files a/resources/images/note.png and /dev/null differ diff --git a/resources/images/track-audio.png b/resources/images/track-audio.png new file mode 100644 index 000000000..1a87e455d Binary files /dev/null and b/resources/images/track-audio.png differ diff --git a/resources/images/track-data.png b/resources/images/track-data.png new file mode 100644 index 000000000..444d10609 Binary files /dev/null and b/resources/images/track-data.png differ diff --git a/resources/images/track-video.png b/resources/images/track-video.png new file mode 100644 index 000000000..de35edd6c Binary files /dev/null and b/resources/images/track-video.png differ diff --git a/resources/img-src/licenses.txt b/resources/img-src/licenses.txt new file mode 100644 index 000000000..e2e9c4dd5 --- /dev/null +++ b/resources/img-src/licenses.txt @@ -0,0 +1,11 @@ +The following icons were created by Carlin Mangar and +published under Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales +(CC BY-SA 2.0 UK) license (https://creativecommons.org/licenses/by-sa/2.0/uk/): +* Picard application icon +* picard-submit + +The following icons use symbols from Font Awesome by Dave Gandy (http://fontawesome.io) +published under the SIL OFL 1.1 license (http://scripts.sil.org/OFL): +* track-audio +* track-data +* track-video \ No newline at end of file diff --git a/resources/img-src/track-audio.svg b/resources/img-src/track-audio.svg new file mode 100644 index 000000000..9e7880f9b --- /dev/null +++ b/resources/img-src/track-audio.svg @@ -0,0 +1,65 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/resources/img-src/track-data.svg b/resources/img-src/track-data.svg new file mode 100644 index 000000000..eba13dba0 --- /dev/null +++ b/resources/img-src/track-data.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/img-src/track-video.svg b/resources/img-src/track-video.svg new file mode 100644 index 000000000..005a4bead --- /dev/null +++ b/resources/img-src/track-video.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/picard.qrc b/resources/picard.qrc index 27ca46029..30f822597 100644 --- a/resources/picard.qrc +++ b/resources/picard.qrc @@ -57,9 +57,11 @@ images/match-pending-80.png images/match-pending-90.png images/match-pending-100.png - images/note.png images/star-gray.png images/star.png + images/track-audio.png + images/track-data.png images/track-saved.png + images/track-video.png diff --git a/ui/options_advanced.ui b/ui/options_advanced.ui index 23d3d624d..71fdfc396 100644 --- a/ui/options_advanced.ui +++ b/ui/options_advanced.ui @@ -31,16 +31,56 @@ + + + Ignore hidden files + + + + - - + + + + + + + Ignore the following tracks when determining whether a release is complete + + + + - Ignore hidden files + Video tracks + + + + + + + Pregap tracks + + + + + + + Data tracks + + + true + + + + + + + Silent tracks