Use info dialog to display per-album error log.

When an error occurs during loading of a release, it will be visible
in info dialog for this release (which was unused).

New icon was added to mark visually releases with errors, and scrollbars
will appear in info dialog if needed.
This commit is contained in:
Laurent Monin
2013-07-01 02:03:58 +02:00
parent 694b1d6c58
commit 258e9c2084
9 changed files with 285 additions and 113 deletions

View File

@@ -62,6 +62,7 @@ class Album(DataObject, Item):
self._discid = discid
self._after_load_callbacks = queue.Queue()
self.unmatched_files = Cluster(_("Unmatched Files"), special=True, related_album=self, hide_if_empty=True)
self.errors = []
def __repr__(self):
return '<Album %s %r>' % (self.id, self.metadata[u"album"])
@@ -132,7 +133,7 @@ class Album(DataObject, Item):
try:
run_album_metadata_processors(self, m, release_node)
except:
log.error(traceback.format_exc())
self.error_append(traceback.format_exc())
self._release_node = release_node
return True
@@ -144,7 +145,7 @@ class Album(DataObject, Item):
parsed = False
try:
if error:
log.error("%r", unicode(http.errorString()))
self.error_append(unicode(http.errorString()))
# Fix for broken NAT releases
if error == QtNetwork.QNetworkReply.ContentNotFoundError:
nats = False
@@ -164,12 +165,16 @@ class Album(DataObject, Item):
parsed = self._parse_release(document)
except:
error = True
log.error(traceback.format_exc())
self.error_append(traceback.format_exc())
finally:
self._requests -= 1
if parsed or error:
self._finalize_loading(error)
def error_append(self, msg):
log.error(msg)
self.errors.append(msg)
def _finalize_loading(self, error):
if error:
self.metadata.clear()
@@ -216,7 +221,7 @@ class Album(DataObject, Item):
try:
run_track_metadata_processors(self, tm, self._release_node, track_node)
except:
log.error(traceback.format_exc())
self.error_append(traceback.format_exc())
totalalbumtracks = str(totalalbumtracks)
@@ -239,14 +244,14 @@ class Album(DataObject, Item):
try:
parser.eval(script, track.metadata)
except:
log.error(traceback.format_exc())
self.error_append(traceback.format_exc())
# Strip leading/trailing whitespace
track.metadata.strip_whitespace()
# Run tagger script for the album itself
try:
parser.eval(script, self._new_metadata)
except:
log.error(traceback.format_exc())
self.error_append(traceback.format_exc())
self._new_metadata.strip_whitespace()
for track in self.tracks:
@@ -280,6 +285,7 @@ class Album(DataObject, Item):
self._new_metadata = Metadata()
self._new_tracks = []
self._requests = 1
self.errors = []
require_authentication = False
inc = ['release-groups', 'media', 'recordings', 'artist-credits',
'artists', 'aliases', 'labels', 'isrcs', 'collections']
@@ -391,7 +397,7 @@ class Album(DataObject, Item):
return True
def can_view_info(self):
return bool(self.loaded and self.metadata and self.metadata.images)
return (self.loaded and self.metadata and self.metadata.images) or self.errors
def is_album_like(self):
return True

View File

@@ -2,7 +2,7 @@
# Resource object code
#
# Created: dim. juin 30 21:56:31 2013
# Created: lun. juil. 1 02:03:25 2013
# by: The Resource Compiler for PyQt (Qt v4.8.2)
#
# WARNING! All changes made in this file will be lost!
@@ -1914,6 +1914,69 @@ qt_resource_data = "\
\xbc\xfe\x92\x5f\x48\x9e\xe4\xec\x1d\xf1\xc4\xbe\x03\xd8\xc1\xbf\
\xce\x15\x14\xa7\xaa\x2a\x88\xcd\x00\x00\x00\x00\x49\x45\x4e\x44\
\xae\x42\x60\x82\
\x00\x00\x03\xc4\
\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\
\xdd\x06\x0f\x0c\x1a\x34\x2d\xd4\xb7\xad\x00\x00\x03\x51\x49\x44\
\x41\x54\x38\xcb\x75\x93\x4b\x4c\x5c\x55\x00\x86\xbf\x73\xce\xbd\
\x97\xb9\x33\x17\x86\x81\x21\x20\x94\x16\x28\x8d\x8f\x34\x84\x82\
\x82\x49\x8d\x80\x89\x62\x37\x26\x9a\xa8\xa9\x12\x74\xa7\x2d\x75\
\xe3\x63\xa1\x31\x31\x1a\xdd\x18\x31\x31\x6a\xd0\xc4\xa6\x58\x7c\
\xa4\xa9\x24\xc6\x52\x11\x88\x69\x2b\x2a\xc2\x68\x84\x85\xe0\xa2\
\x64\xca\x33\x35\xa1\x33\x0e\x05\xee\x3c\xce\xbd\xd7\x0d\x4d\xd4\
\xe8\xb7\xfc\x93\x6f\xf3\xe7\xff\x05\xff\xe2\x95\x47\x1f\x6e\xdf\
\x72\x22\x4f\x7a\x4a\x75\x02\xf5\xbb\x71\x52\x79\xde\x45\x67\x6b\
\x7b\xf0\xd5\x33\x67\xa7\xf9\x3f\xfa\x8f\x74\x0f\x9c\xec\xed\x99\
\x5b\x9d\x9b\xbb\xb0\x93\xc9\x64\x3c\xad\x7d\x4f\x6b\x7f\x27\x93\
\xb9\xbe\x32\xfb\xeb\xd4\xc9\xde\x9e\xb9\xfe\x23\xdd\x03\xff\x29\
\x9f\x6e\x6d\x19\x5d\xfb\x64\xe8\x73\x2f\x9f\xf7\xaf\x4e\x4e\x06\
\xab\xa3\xa3\xc1\xca\xc8\x48\xb0\x3e\x31\x11\x6c\x24\x12\xc1\xf6\
\xea\x6a\xe0\x69\xed\xaf\x0e\x0d\x8d\x9e\x6e\x6d\x19\xbd\xe1\x29\
\x80\xb7\xef\xbf\x6f\xe0\x81\xa7\x8f\x89\x58\x57\xd7\x23\xeb\xc3\
\xc3\xb2\xb0\xb1\x01\xb9\x1c\x12\x10\x80\xb2\x2c\xa4\x52\x78\x3b\
\x3b\x22\x7a\xe8\x50\x63\x3c\x56\x9a\xaa\x75\xb7\x5b\xc7\x2e\x2f\
\x9e\x57\x7d\x27\x8e\xb5\x37\x28\xe3\xf8\xe1\x17\x5f\xba\x27\x35\
\x35\x25\xfd\x42\x01\x9d\x4e\x93\x4f\x5d\x23\x9f\x4e\xa1\x37\x37\
\x91\xa6\x89\x0a\x87\x91\x86\x49\x10\x04\xc4\xda\xda\x6b\xe6\x27\
\xc6\xc3\x7b\xef\xbe\xeb\x17\xd5\xd6\x76\xc7\xcb\xbd\x27\x9e\xd9\
\x2b\xaf\x6f\x55\xea\xcd\x4d\xfc\x5c\x16\x59\x54\x84\x15\x8f\x13\
\x69\xd8\x4f\x64\x5f\x1d\x76\xcd\x1e\xdc\xe5\x2b\xa8\x70\x18\xdf\
\x75\xf1\xb5\x26\xba\x6f\x5f\x21\xf1\xfb\x82\x6d\x00\x9d\x15\x0d\
\xfb\xeb\xb3\x4b\x4b\x28\xdb\xc6\xcf\xe5\xb0\x62\x65\xa4\x13\x09\
\x16\x26\xc6\x01\x82\x3b\x9f\x7f\x41\x94\xb6\xb4\x90\x9a\xfe\x09\
\xbb\xba\x06\xad\x35\xf1\xba\xfa\x38\xd0\x29\x81\x7a\x2b\x1c\xb6\
\x54\x28\x84\xe1\x38\x20\x04\xa1\xea\x6a\x16\x26\xc6\x83\x38\xa2\
\x49\x07\x41\x45\xa2\xff\x2d\x3f\x54\x55\x85\xbb\xb2\x8c\x9f\xcf\
\xe3\xb9\x2e\xaa\xa8\xc8\x04\xea\x8d\xdd\x32\x85\xb2\x6d\xd0\x1a\
\x69\x59\x98\xb1\x18\x4a\x08\x7f\x59\x17\x96\x01\x4c\xc8\x03\x21\
\xcf\x75\xf1\xf3\x79\x30\x0c\x7c\xad\x05\x20\x24\x90\x2c\xb8\xae\
\x56\xb6\x8d\xb2\x6d\x42\x95\x95\x78\xdb\xdb\xdc\xfe\xec\x73\xd2\
\x96\xea\x6a\x08\x16\x5b\xfb\xfa\xac\xcc\xdc\x1c\xca\x0e\xe3\xe5\
\x72\xf8\xf9\x3c\x6e\x26\xe3\x01\x49\x09\x5c\xbc\xb6\xb4\x94\x36\
\x1c\x07\xc3\x71\x88\x34\x36\x52\xf8\x33\x45\x45\x47\x87\x78\xf0\
\xd2\x77\xa1\x87\x26\x7f\x28\x2f\xbe\xf5\x36\x79\x65\xf0\x14\x46\
\x34\x8a\x9f\xcd\x22\x2d\x8b\xd4\xda\xaa\x0b\x5c\x30\x80\xc1\xf1\
\xfe\x37\xbb\x9f\xf8\xe8\x54\x85\x70\x1c\xa4\x65\x21\x0f\xdc\xcc\
\x76\x32\x49\x6a\x66\x9a\x42\x3a\x8d\xb4\x2c\x4a\x5b\x5a\x10\x42\
\x12\x78\x1e\x91\xda\x5a\x66\x5e\x7f\x2d\x4b\xb1\x33\xa8\x12\x33\
\x3f\xaf\x75\x54\x55\xde\x52\x6d\x9a\x37\x95\x1e\x3c\x58\x22\xa4\
\x44\x28\x85\xb4\x2c\xac\xf2\x72\x42\xd5\x35\x98\xb1\x32\x84\x52\
\xe8\xad\x2d\x4a\x9b\x9b\x59\x39\xf7\x55\x66\x7e\xfe\xb7\xb3\x6f\
\x7c\x76\xe6\x43\x05\x30\x76\x79\xf1\x7c\xf3\xca\xd2\xbd\xc5\x76\
\x38\x1e\x6b\x6a\x0a\xa1\x14\x3a\x9b\x25\xf0\x7d\x7c\x20\x90\x12\
\xa3\xa4\x84\x68\x53\x13\xc9\xe1\x2f\xf2\xb3\x23\xe7\x26\x8f\x5f\
\x9a\x3c\x0a\x28\x75\x63\xd3\x5f\xae\xad\x7f\x7a\x60\x33\x53\x37\
\xfb\xcd\xd7\xf5\x65\x7b\x6a\x2d\xd3\x71\x64\x28\x1e\xc7\x88\x46\
\xd1\x4a\xf1\xc7\xca\xb2\x37\xf6\xee\x3b\x3b\xc9\x85\x85\x8f\x9f\
\xfa\xfe\xc7\xa3\xbb\x5a\x20\xfe\xf6\x27\x01\x18\x8f\xf7\x3c\x76\
\x38\x12\x09\xf7\x1a\xca\xe8\x12\x52\xd4\x0a\x21\x84\xef\xfb\x6b\
\x5a\xeb\x6f\x4d\xd3\xfc\xe0\xfd\xf7\x06\xfe\x71\xe7\xbf\x00\xb7\
\x72\x61\x14\x06\xc0\xe7\xf4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
\x42\x60\x82\
\x00\x00\x02\xab\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -1959,50 +2022,6 @@ qt_resource_data = "\
\x3f\x5f\xda\x68\xfd\xbf\x00\x00\x38\x7c\x45\xbd\x0f\x00\xc3\x37\
\xc5\xd9\x7f\xf5\xfc\x02\x73\x4a\x12\x2a\x86\x68\x1c\xcb\x00\x00\
\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x02\x97\
\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\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\x02\x29\x49\x44\x41\x54\x38\x8d\x95\
\x52\x3b\x68\x53\x61\x18\x3d\xff\x7d\x24\x37\x52\x2c\x44\x4d\x3a\
\x24\x45\xa9\xaf\x45\xb0\x76\x32\xad\x08\x1d\x04\x25\x1d\x8a\x88\
\x8b\x43\x1d\x45\xb0\x88\xd6\xc1\x5d\x10\x7a\x47\x07\xa1\x4b\xa6\
\x0e\x52\x51\x09\x6d\x84\x4c\x3e\xae\x85\x50\x4b\x34\x34\x42\x8b\
\x42\x87\x94\xa4\x35\x5a\x31\x4d\xef\xbd\xff\xe3\x73\x88\xc4\xd4\
\xa4\x62\x0f\xfc\xcb\xe1\xe3\x7c\xff\x39\xdf\x61\x44\x84\x56\x0c\
\x4e\x98\x65\x10\xa2\xe8\x04\x86\x8a\x33\xc9\x7b\x5a\x29\xa3\x6d\
\x88\x10\xb5\x6f\x3e\x81\x50\x02\x42\xf9\x90\x8a\x43\x28\x0e\x2e\
\x3d\x3c\x4c\xdd\x6e\x13\x6e\x17\x00\xc0\x98\x86\xdc\x6a\x1a\x9e\
\xd8\x86\x2b\xb6\xe0\xf1\x2d\x9c\x3d\x32\xda\xf1\x53\x5a\x47\x16\
\x0c\x8c\xfd\x7e\x60\x00\x63\x90\x8a\xef\x45\xa0\x91\x0b\x11\x81\
\x40\x00\xd1\xae\x02\xc6\xd0\x3d\xd3\x21\x85\x44\x73\xb7\x0e\x97\
\x88\x2c\xa5\x24\x88\x14\x88\x14\x7c\xb9\x0d\xae\x7c\x30\x1d\xee\
\xe0\x5d\xb3\x99\x3a\xd3\xf0\xce\x20\x85\x54\x2c\xd2\xd7\x7f\xeb\
\xf2\x83\x90\xa1\x07\x40\xa4\x2c\x49\x02\x8a\x49\x40\x17\x00\x04\
\xca\x9b\xcb\x60\xfa\x25\xdc\xb8\x7a\xdf\x02\x01\x9c\xfb\x98\xc9\
\xa6\xea\xdf\x7f\x7c\x4d\x31\x22\xc2\xd0\x84\x39\x73\xee\xf4\xc5\
\xe4\xf0\xc0\x68\xb0\x58\x79\x03\xc9\x7c\x48\xf8\xf8\xe6\x96\xb0\
\x56\xfb\x04\xae\x7c\x80\x08\x44\x1a\xce\xf7\x5e\xc3\x62\x61\xc1\
\x2b\x2e\xe7\xd3\x6f\x27\xf9\x15\xad\xe1\x15\x63\xaf\xf3\x99\xca\
\x97\xf2\x12\xc5\xc2\xc7\x41\x1a\xc7\xba\xb7\x82\x92\xfb\x11\x2c\
\x28\x10\x08\x69\x30\x43\x3a\xfa\x63\xc3\xa8\x6e\x56\xa9\xb8\x92\
\xaf\x10\xe1\x7a\x33\x44\xc7\xe6\x35\x10\x92\xd3\x2f\x1f\xbb\x06\
\xb3\x60\x9a\x26\x36\xfc\xcf\x30\x2d\x1d\x01\x4b\x43\x20\xa4\x23\
\x1e\x3e\x86\x48\xa8\x0f\xd9\x57\xb3\x2e\x29\x24\x1d\x9b\xd7\x76\
\x5c\xc1\xb1\x79\x41\x08\x6f\x7c\x3a\xf3\xa8\x7e\x70\x5f\x1c\x5d\
\xa1\x6e\x98\xc1\xc6\xe6\xfd\x5d\xdd\x38\x15\xb9\x80\x74\xf6\x69\
\x9d\x73\x7f\xdc\xb1\x79\xa1\xe3\x19\x1d\x9b\x4f\x95\x36\x56\x33\
\xb9\x0f\x8e\x3f\xd0\x33\x02\xcd\x60\x30\x02\x1a\xce\x44\x47\x90\
\x7b\x3f\xef\xaf\x57\xd7\xe6\x1c\x9b\x4f\xed\x38\x63\x5b\x03\x14\
\xc6\x16\x0a\xf3\x4b\xbd\xb1\xc3\xf1\xa3\xe1\x04\xd3\x0d\x0d\xd5\
\xd2\x4f\xca\x2d\x3a\x65\x25\x1b\xbe\xff\x59\x24\xc7\xe6\x35\x92\
\x48\xce\x66\x5f\xb8\x87\x70\x12\x07\xd4\x09\x3c\x9f\x7b\xe6\x2a\
\xf9\xc7\x77\x2b\x58\xe2\x8e\x41\x7f\x93\x7b\xc1\x2e\x55\xfe\x7f\
\xfc\x02\xaa\x26\x0d\x2a\x62\xcc\x1b\x11\x00\x00\x00\x00\x49\x45\
\x4e\x44\xae\x42\x60\x82\
\x00\x00\x03\x8f\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -2833,6 +2852,98 @@ qt_resource_data = "\
\x03\xa8\xc4\xbc\x7a\xfa\x46\x00\x0e\x00\xf6\x00\xbe\x62\xbe\x17\
\x67\xe6\x23\x00\x50\xfa\xb9\x2b\xca\xbe\x01\xd3\xd8\xe4\x64\x97\
\x03\xd0\xba\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x05\x92\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\
\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\
\xdd\x06\x0f\x0c\x19\x11\x4d\xfd\x30\x29\x00\x00\x05\x1f\x49\x44\
\x41\x54\x38\xcb\xb5\x95\x6d\x8c\x5c\x55\x19\xc7\x7f\xe7\x9c\x7b\
\xef\xdc\xb9\x3b\xfb\xd6\xe9\xb2\xcb\xbe\x18\xdb\x9d\xd2\xed\x3a\
\x48\x48\x28\xaf\x0d\x2f\xc1\x1a\x05\xc5\x95\x28\x9a\xf8\x61\x79\
\x89\xd1\x88\x26\x46\x4d\x93\x56\x3e\xa1\x82\x46\x82\x40\x42\x13\
\x12\x08\x0b\x44\x23\xee\x12\x6b\x84\x6a\x6c\x2b\x21\x52\xa2\xd8\
\x25\xdb\x6c\xd9\xd2\x29\xc8\xd2\xe2\x38\xed\xb2\xdb\x76\xee\xdc\
\x3b\x77\xee\xcb\x39\x7e\xe8\x76\xb3\x85\x60\xe0\x83\xe7\xcb\xf9\
\x70\x92\xdf\xf3\xe4\xff\xfc\x9f\xff\x81\xff\xd3\x11\xff\xeb\xf1\
\xa1\xad\x37\x8e\xfb\x1d\xed\x5f\x4c\x2c\xfb\x0a\x23\x65\x1f\x20\
\x84\xd1\x27\xec\x24\x79\xb5\xbd\xee\xef\xfa\xfe\x9e\x7d\x4f\x7d\
\xac\x6a\x53\x9b\x46\xc6\x9f\xbc\x7c\xf3\xfc\xf4\xb6\x6d\x7e\xfd\
\xad\xb7\xb2\xd8\xf7\x4d\x1a\xc7\x26\x8d\x13\x13\xfb\x75\x73\xa6\
\x72\x44\xcf\xfe\xfc\xfe\xf0\xc9\x2b\x36\xbf\x3b\xb5\x69\x64\xfc\
\x23\x75\xbc\x6b\x43\xe9\x91\xe1\x9b\xbf\xf0\x8d\xd2\xf6\xed\xdd\
\x18\x23\xc2\x63\xc7\x88\x6a\x27\x31\x3a\xc3\xca\xbb\x58\x9e\x87\
\x7b\x61\x1f\xb9\x9e\x1e\xb2\x38\x61\x6e\xc7\xf6\xe0\xd8\x4b\x2f\
\x3d\x35\x56\x39\x7a\xf7\x6a\x8e\x7a\x3f\x74\xf4\x5b\xdf\xbe\xe3\
\xa2\x1d\x3f\xee\xf4\xe7\xe6\xc4\xa9\x7f\x1e\x20\x3a\xb1\x80\x4e\
\x53\xa4\x65\xa3\x72\x39\x8c\xce\x40\x6b\x74\xb3\x89\x50\x92\x81\
\xaf\xde\xe6\x64\xd5\xea\xa5\x9f\x5b\x5a\x5c\xff\xdb\xf7\x16\xff\
\xf0\x01\xf0\xd4\xa6\x91\xf1\x81\xd1\xd1\x6d\xe5\x07\x1e\xe8\x5c\
\xf8\xeb\x8b\xd4\xe7\x0e\x63\xb4\x41\x67\x1a\x84\x40\xb5\xb5\xa1\
\x5c\x17\x74\x86\x52\x12\x74\x0a\x46\xa3\x5b\x11\xbd\x9f\xbf\x49\
\x36\xa6\xa7\xcb\xd7\xda\xf6\xf1\xdf\xff\xa7\x36\x03\x20\xcf\x81\
\x97\x8a\x6b\x7e\x76\xf1\xa3\x3b\xbb\xfc\x4a\x85\xc4\xaf\x93\xeb\
\xe9\x41\x3a\x0e\x48\x81\xce\x34\x59\x9a\x92\x35\x9b\x98\x38\x46\
\x87\x0d\x4c\x2b\x84\x24\xc2\xa4\x09\x59\xc3\x67\xe3\x3d\xf7\x58\
\x4b\x03\xfd\x0f\x9f\xd7\xf1\x7d\x63\xb7\x8c\x5f\xf7\x99\xad\x5f\
\xef\xbb\xea\x6a\xab\x71\xa4\x02\x3a\x43\x5a\x0a\xa1\x14\x26\x4d\
\xc9\x0f\x0d\x61\x17\x0a\x58\xed\x05\xa4\x49\x11\xad\x00\x29\x41\
\x28\x05\xda\x90\xd4\x7d\x72\x3d\x17\xd0\x38\xf6\x8e\x3d\x54\x2a\
\x9d\x7e\x79\x66\xe6\x1f\x16\x40\x58\x68\xfb\xda\x27\xbf\x7c\xab\
\xd3\x5a\x58\x00\x61\x10\x18\x4c\x9a\xa0\x24\xe4\x3e\x31\xc8\x99\
\x43\xb3\x54\x9e\x7d\x16\x8d\x61\xf8\xfa\x6b\x19\xdc\xba\x85\x2c\
\x6c\x90\x26\x29\x69\xba\x88\xf4\x0a\x08\x27\xc7\xf0\x0d\x37\xca\
\x57\x5e\xf8\xe3\x0f\x80\x47\xce\x4a\xe1\x38\x5b\x0a\x03\x03\xe8\
\x66\x88\xb2\x2c\xa4\x49\x31\x61\x1d\xcb\x82\xe0\xc8\x61\x4e\xec\
\x7e\xc1\x0c\x6d\xdc\xf8\xaf\x8b\x46\x3f\xb5\x3b\x98\x3f\x9e\xd5\
\x5e\x3e\x80\xbd\xb6\x97\xd6\x7b\x0b\x08\x21\x10\x96\x8d\x8e\x63\
\x8a\xa5\x12\x51\x92\x0c\xac\x68\x9c\x64\xba\x4d\x3a\x0e\xd2\x71\
\x90\xb6\x42\x89\x04\x19\x9d\x41\xa5\x01\xaf\x3d\xf3\x34\x6b\x07\
\x87\xfe\x74\xc9\xc4\xc4\xf0\xc8\x13\x4f\xdc\x6c\x07\xc1\xd6\xa3\
\x7f\xfe\x0b\x4e\xff\x10\xaa\xa3\x1b\xab\x78\x01\xaa\xd0\x0e\x42\
\x62\x7b\x1e\x49\x12\x5b\x2b\x60\x21\xce\xfa\x59\x58\x16\xd2\x92\
\x48\x1d\x23\x92\x26\xa4\x2d\x8a\x8e\x43\xbd\x52\xf9\xc5\xb9\xa1\
\x1c\xac\x55\xff\x66\xc0\xe0\xe4\x31\x56\x0e\x23\x25\xc6\x18\x8c\
\xd6\x48\xb9\xe2\x05\x2c\x00\x5b\x59\x91\x49\x92\xbc\x72\x5d\x8c\
\x57\x40\x77\xac\x45\x46\x29\x5a\xd9\xf4\x5e\x73\x35\x8d\x03\x33\
\x8f\x4d\x5c\x7e\xd9\xc5\x00\xc3\x8d\xe0\xa1\xbe\xbb\x6e\x17\x59\
\xe8\x93\xf8\x3e\x46\x28\x90\x12\xa1\x14\xb2\x15\xe1\xd8\x4e\xb6\
\x02\xce\x5b\xd6\xbb\x61\xad\xb6\xc1\xed\xec\x40\x7b\x05\x54\xc7\
\x1a\xb4\x86\x2c\x8a\xe9\xfd\xd2\xad\xb8\xa5\x91\x91\xd2\xe4\xef\
\x5a\x18\xa3\x07\xef\xfe\x8e\x2a\x5e\x76\x09\x61\xe5\x10\xd2\xb6\
\x48\xc3\x00\x21\x24\x6e\x5f\x1f\xf5\x6a\x15\x2f\x9f\x6f\xae\x80\
\x59\x5c\x7a\xf4\xcd\xc9\xc9\x5f\x7d\xfa\x7b\xdf\x15\x32\x6a\xa1\
\xd6\xf4\x20\x0b\x1d\x24\x41\x48\xdc\x08\xf1\x46\xca\x94\xee\xbd\
\x54\x0a\x21\xa5\x30\x29\xfe\xdb\xef\x20\xe3\x08\xd5\xd6\x85\xae\
\x87\xe8\x2c\xc6\x2e\x16\x39\x3a\x39\x89\xe7\x38\xaf\xae\x80\x77\
\x4c\x3d\xf7\xf0\xc0\xd2\xe2\x2f\x47\xc7\xc7\x6d\xab\x50\x40\xd8\
\x36\x69\x10\x20\x8c\x44\x66\x82\xe0\xdf\x55\x92\xd3\xf5\x65\xdf\
\xa6\xd8\x39\x85\xed\x80\x0c\xea\x20\x14\x6e\x5f\x1f\x3a\x8a\xa8\
\xbe\x3e\x6b\x46\xcf\xf8\xb7\x9d\xb7\xd2\xdf\xf4\xbc\x46\x63\x76\
\xf6\xb3\xfd\x63\x63\x02\xc0\x20\xc0\x80\x11\x02\x1d\xa7\xc8\x7c\
\x1e\xe5\x79\x28\xc7\x81\x2c\x83\x34\x45\x87\x0d\x72\xbd\xfd\x78\
\xeb\xd6\xf3\xc6\x4f\xef\x25\x0e\xc2\x5d\xb7\x3c\xff\xfc\xc4\x79\
\xe0\xdf\x2c\x2c\x4c\xdf\xd5\x6a\x89\xb0\x19\x5e\x57\xbc\x66\xcb\
\xd9\xe8\x13\x12\x8c\x21\x0b\xc2\xb3\x6b\xea\xd8\x08\x0c\x64\x29\
\x26\x4d\x71\xfb\x07\xf1\xd6\xad\xe3\xed\x9d\x3b\x59\x9a\x9d\x3d\
\x75\xd3\xde\x7d\x57\x01\x06\x30\x6a\x39\x3a\x5d\x20\xff\xf8\xe2\
\xe2\xcc\x57\xea\xf5\xf2\xc9\xd7\xa6\x4b\x6b\xaf\xbc\x12\xbb\xab\
\x0b\x1d\x27\x68\x9d\x21\x2c\x85\xca\x39\x08\x29\xb1\x3b\x3b\x28\
\x94\x86\xc9\xd2\x84\x23\x0f\x3e\x48\xf5\xd0\x6c\xf4\x93\xb9\xc3\
\x5b\x8e\x47\x51\x0b\x48\x57\x83\xe5\xf2\x6d\x4f\x54\xab\x2f\x6e\
\xe8\xee\x92\x07\xff\xfe\xca\x66\x1d\x35\x85\x55\x68\xc7\xee\xee\
\xc6\x2e\x16\x51\x9d\x9d\x88\x8e\x76\xc2\x24\xe1\xe0\xbe\xbd\xec\
\x79\x6e\x8a\x7a\xb3\x39\x75\xfb\x9e\xbd\x77\xce\x37\x9b\x75\x20\
\x58\x06\xeb\xd5\x41\x2f\x97\x87\xd9\x0e\x58\x6d\xae\xdb\xb6\xe3\
\x47\x3f\xdc\xad\xb5\x5e\xdf\x68\x06\x56\xab\xd5\x12\x00\xb9\x5c\
\x0e\x2f\xef\x69\xdb\xb2\xab\xbf\x7e\xfa\x99\xb1\xd7\xe7\xe7\x4f\
\x01\xa7\x81\x08\x68\x2d\x4b\xa1\x3f\xec\xcf\x93\xab\xd2\xcf\x2a\
\x97\xcb\x5d\xe5\x72\xb9\xdf\x75\xdd\xb6\x5a\xad\x56\xdb\xbf\x7f\
\xff\x49\xdf\xf7\xa3\x73\xdd\x9d\xd3\x75\x35\xe0\xbf\x05\xd5\x4c\
\xec\x72\xd2\x98\xab\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
\x82\
\x00\x00\x03\x12\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -9138,16 +9249,16 @@ qt_resource_name = "\
\x08\x89\x88\x67\
\x00\x70\
\x00\x69\x00\x63\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x17\
\x08\x1f\x12\x27\
\x00\x6d\
\x00\x65\x00\x64\x00\x69\x00\x61\x00\x2d\x00\x6f\x00\x70\x00\x74\x00\x69\x00\x63\x00\x61\x00\x6c\x00\x2d\x00\x65\x00\x72\x00\x72\
\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x15\
\x00\x24\xf9\x87\
\x00\x61\
\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x2d\x00\x67\x00\x6f\x00\x2d\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x2d\x00\x31\x00\x36\
\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x17\
\x09\xec\xdc\x07\
\x00\x61\
\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x2d\x00\x67\x00\x6f\x00\x2d\x00\x62\x00\x6f\x00\x74\x00\x74\x00\x6f\x00\x6d\x00\x2d\
\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x11\
\x0f\xe3\xd5\x67\
\x00\x64\
@@ -9211,8 +9322,8 @@ 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\x0e\x00\x00\x00\x2f\
\x00\x00\x01\xce\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x21\
\x00\x00\x02\x8c\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x30\
\x00\x00\x01\xce\x00\x02\x00\x00\x00\x0f\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\
@@ -9236,39 +9347,40 @@ qt_resource_struct = "\
\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\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\xe0\x3a\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x01\xcb\x87\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\xc2\x5a\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\xd5\xed\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x02\x22\xc4\
\x00\x00\x03\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xa0\x1a\
\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x97\xff\
\x00\x00\x06\x42\x00\x00\x00\x00\x00\x01\x00\x00\xad\xd0\
\x00\x00\x06\x8e\x00\x00\x00\x00\x00\x01\x00\x00\xb5\x9c\
\x00\x00\x05\x64\x00\x00\x00\x00\x00\x01\x00\x00\x85\x2e\
\x00\x00\x05\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x94\xa7\
\x00\x00\x04\x0e\x00\x00\x00\x00\x00\x01\x00\x00\xa8\xb6\
\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x8b\x7d\
\x00\x00\x06\x18\x00\x00\x00\x00\x00\x01\x00\x00\xaa\xba\
\x00\x00\x03\xf4\x00\x00\x00\x00\x00\x01\x00\x00\xa5\x8f\
\x00\x00\x05\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xbc\xf5\
\x00\x00\x05\xea\x00\x00\x00\x00\x00\x01\x00\x00\x9b\xec\
\x00\x00\x06\x66\x00\x00\x00\x00\x00\x01\x00\x00\xb0\xa5\
\x00\x00\x04\xc0\x00\x00\x00\x00\x00\x01\x00\x00\xb8\x73\
\x00\x00\x04\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x73\x34\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\xe6\xfd\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x01\xd2\x4a\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\xc9\x1d\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\xdc\xb0\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x02\x29\x87\
\x00\x00\x03\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xa1\x47\
\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x99\x2c\
\x00\x00\x06\x42\x00\x00\x00\x00\x00\x01\x00\x00\xb4\x93\
\x00\x00\x06\x8e\x00\x00\x00\x00\x00\x01\x00\x00\xbc\x5f\
\x00\x00\x05\x64\x00\x00\x00\x00\x00\x01\x00\x00\x86\x5b\
\x00\x00\x05\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x95\xd4\
\x00\x00\x04\x0e\x00\x00\x00\x00\x00\x01\x00\x00\xa9\xe3\
\x00\x00\x04\x5c\x00\x00\x00\x00\x00\x01\x00\x00\xab\xe7\
\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x8c\xaa\
\x00\x00\x06\x18\x00\x00\x00\x00\x00\x01\x00\x00\xb1\x7d\
\x00\x00\x03\xf4\x00\x00\x00\x00\x00\x01\x00\x00\xa6\xbc\
\x00\x00\x05\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xc3\xb8\
\x00\x00\x05\xea\x00\x00\x00\x00\x00\x01\x00\x00\x9d\x19\
\x00\x00\x06\x66\x00\x00\x00\x00\x00\x01\x00\x00\xb7\x68\
\x00\x00\x04\xc0\x00\x00\x00\x00\x00\x01\x00\x00\xbf\x36\
\x00\x00\x04\x90\x00\x00\x00\x00\x00\x01\x00\x00\x76\xfc\
\x00\x00\x03\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x68\x62\
\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x60\x89\
\x00\x00\x04\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x6d\xff\
\x00\x00\x03\xae\x00\x00\x00\x00\x00\x01\x00\x00\x65\x37\
\x00\x00\x05\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x81\x9a\
\x00\x00\x05\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x82\xc7\
\x00\x00\x04\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x73\x34\
\x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\x6f\xbb\
\x00\x00\x04\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x75\xe3\
\x00\x00\x03\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x6c\x09\
\x00\x00\x04\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x7c\x11\
\x00\x00\x04\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x3e\
\x00\x00\x03\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x5e\x39\
\x00\x00\x05\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x7e\x46\
\x00\x00\x05\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x73\
\x00\x00\x03\x88\x00\x00\x00\x00\x00\x01\x00\x00\x62\xa6\
\x00\x00\x04\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x78\x7e\
\x00\x00\x04\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x79\xab\
"
def qInitResources():

View File

@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import os.path
from PyQt4 import QtGui
from PyQt4 import QtGui, QtCore
from picard.util import format_time, encode_filename, bytes2human
from picard.ui.ui_infodialog import Ui_InfoDialog
@@ -102,7 +102,9 @@ class FileInfoDialog(InfoDialog):
else:
ch = str(ch)
info.append((_('Channels:'), ch))
text = '<br/>'.join(map(lambda i: '<b>%s</b><br/>%s' % i, info))
text = '<br/>'.join(map(lambda i: '<b>%s</b><br/>%s' %
(QtCore.Qt.escape(i[0]),
QtCore.Qt.escape(i[1])), info))
self.ui.info.setText(text)
@@ -114,4 +116,15 @@ class AlbumInfoDialog(InfoDialog):
def _display_info_tab(self):
tab = self.ui.info_tab
self.tab_hide(tab)
album = self.obj
if album.errors:
text = '<br />'.join(map(lambda s: '<font color="darkred">%s</font>' %
'<br />'.join(unicode(QtCore.Qt.escape(s))
.replace('\t', ' ')
.replace(' ', '&nbsp;')
.splitlines()
), album.errors)
)
self.ui.info.setText(text + '<hr />')
else:
self.tab_hide(tab)

View File

@@ -137,6 +137,7 @@ class MainPanel(QtGui.QSplitter):
ClusterItem.icon_dir = icontheme.lookup('folder', icontheme.ICON_SIZE_MENU)
AlbumItem.icon_cd = icontheme.lookup('media-optical', icontheme.ICON_SIZE_MENU)
AlbumItem.icon_cd_saved = icontheme.lookup('media-optical-saved', icontheme.ICON_SIZE_MENU)
AlbumItem.icon_error = icontheme.lookup('media-optical-error', icontheme.ICON_SIZE_MENU)
TrackItem.icon_note = QtGui.QIcon(":/images/note.png")
FileItem.icon_file = QtGui.QIcon(":/images/file.png")
FileItem.icon_file_pending = QtGui.QIcon(":/images/file-pending.png")
@@ -635,7 +636,12 @@ class AlbumItem(TreeItem):
self.insertChildren(oldnum, items)
for item in items: # Update after insertChildren so that setExpanded works
item.update(update_album=False)
self.setIcon(0, AlbumItem.icon_cd_saved if album.is_complete() else AlbumItem.icon_cd)
if album.errors:
self.setIcon(0, AlbumItem.icon_error)
elif album.is_complete():
self.setIcon(0, AlbumItem.icon_cd_saved)
else:
self.setIcon(0, AlbumItem.icon_cd)
for i, column in enumerate(MainPanel.columns):
self.setText(i, album.column(column[1]))
if self.isSelected():

View File

@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'ui/infodialog.ui'
#
# Created: Sat Oct 6 19:08:31 2012
# by: PyQt4 UI code generator 4.9.4
# Created: Sat Jun 15 12:58:18 2013
# by: PyQt4 UI code generator 4.9.3
#
# WARNING! All changes made in this file will be lost!
@@ -18,26 +18,37 @@ class Ui_InfoDialog(object):
def setupUi(self, InfoDialog):
InfoDialog.setObjectName(_fromUtf8("InfoDialog"))
InfoDialog.resize(535, 436)
self.vboxlayout = QtGui.QVBoxLayout(InfoDialog)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.verticalLayout = QtGui.QVBoxLayout(InfoDialog)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.tabWidget = QtGui.QTabWidget(InfoDialog)
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.info_tab = QtGui.QWidget()
self.info_tab.setObjectName(_fromUtf8("info_tab"))
self.vboxlayout1 = QtGui.QVBoxLayout(self.info_tab)
self.vboxlayout1.setObjectName(_fromUtf8("vboxlayout1"))
self.info = QtGui.QLabel(self.info_tab)
self.vboxlayout = QtGui.QVBoxLayout(self.info_tab)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.info_scroll = QtGui.QScrollArea(self.info_tab)
self.info_scroll.setWidgetResizable(True)
self.info_scroll.setObjectName(_fromUtf8("info_scroll"))
self.scrollAreaWidgetContents = QtGui.QWidget()
self.scrollAreaWidgetContents.setEnabled(True)
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 493, 334))
self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents"))
self.verticalLayoutLabel = QtGui.QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayoutLabel.setObjectName(_fromUtf8("verticalLayoutLabel"))
self.info = QtGui.QLabel(self.scrollAreaWidgetContents)
self.info.setText(_fromUtf8(""))
self.info.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.info.setWordWrap(True)
self.info.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
self.info.setObjectName(_fromUtf8("info"))
self.vboxlayout1.addWidget(self.info)
self.verticalLayoutLabel.addWidget(self.info)
self.info_scroll.setWidget(self.scrollAreaWidgetContents)
self.vboxlayout.addWidget(self.info_scroll)
self.tabWidget.addTab(self.info_tab, _fromUtf8(""))
self.artwork_tab = QtGui.QWidget()
self.artwork_tab.setObjectName(_fromUtf8("artwork_tab"))
self.vboxlayout2 = QtGui.QVBoxLayout(self.artwork_tab)
self.vboxlayout2.setObjectName(_fromUtf8("vboxlayout2"))
self.vboxlayout1 = QtGui.QVBoxLayout(self.artwork_tab)
self.vboxlayout1.setObjectName(_fromUtf8("vboxlayout1"))
self.artwork_list = QtGui.QListWidget(self.artwork_tab)
self.artwork_list.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
self.artwork_list.setIconSize(QtCore.QSize(170, 170))
@@ -48,13 +59,13 @@ class Ui_InfoDialog(object):
self.artwork_list.setSpacing(10)
self.artwork_list.setViewMode(QtGui.QListView.IconMode)
self.artwork_list.setObjectName(_fromUtf8("artwork_list"))
self.vboxlayout2.addWidget(self.artwork_list)
self.vboxlayout1.addWidget(self.artwork_list)
self.tabWidget.addTab(self.artwork_tab, _fromUtf8(""))
self.vboxlayout.addWidget(self.tabWidget)
self.verticalLayout.addWidget(self.tabWidget)
self.buttonBox = QtGui.QDialogButtonBox(InfoDialog)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.vboxlayout.addWidget(self.buttonBox)
self.verticalLayout.addWidget(self.buttonBox)
self.retranslateUi(InfoDialog)
self.tabWidget.setCurrentIndex(0)

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -8,6 +8,7 @@
<file>images/16x16/edit-cut.png</file>
<file>images/16x16/edit-paste.png</file>
<file>images/16x16/folder.png</file>
<file>images/16x16/media-optical-error.png</file>
<file>images/16x16/media-optical-saved.png</file>
<file>images/16x16/media-optical.png</file>
<file>images/16x16/picard.png</file>
@@ -18,6 +19,7 @@
<file>images/22x22/folder.png</file>
<file>images/22x22/list-remove.png</file>
<file>images/22x22/lookup-musicbrainz.png</file>
<file>images/22x22/media-optical-error.png</file>
<file>images/22x22/media-optical-saved.png</file>
<file>images/22x22/media-optical.png</file>
<file>images/22x22/picard-analyze.png</file>

View File

@@ -10,7 +10,7 @@
<height>436</height>
</rect>
</property>
<layout class="QVBoxLayout">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
@@ -22,19 +22,41 @@
</attribute>
<layout class="QVBoxLayout">
<item>
<widget class="QLabel" name="info">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<widget class="QScrollArea" name="info_scroll">
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>493</width>
<height>334</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayoutLabel">
<item>
<widget class="QLabel" name="info">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>