Fix #5445 (Covers are not generated if Checkbox "Read Data from File only" is selected)

This commit is contained in:
Kovid Goyal 2010-05-03 09:39:17 -06:00
parent c9bcd9a35b
commit db7a29f0fc

View File

@ -180,27 +180,34 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
self.formats_changed = True self.formats_changed = True
def get_selected_format_metadata(self): def get_selected_format_metadata(self):
row = self.formats.currentRow() old = prefs['read_file_metadata']
fmt = self.formats.item(row) if not old:
if fmt is None: prefs['read_file_metadata'] = True
if self.formats.count() == 1:
fmt = self.formats.item(0)
if fmt is None:
error_dialog(self, _('No format selected'),
_('No format selected')).exec_()
return None, None
ext = fmt.ext.lower()
if fmt.path is None:
stream = self.db.format(self.row, ext, as_file=True)
else:
stream = open(fmt.path, 'r+b')
try: try:
mi = get_metadata(stream, ext) row = self.formats.currentRow()
return mi, ext fmt = self.formats.item(row)
except: if fmt is None:
error_dialog(self, _('Could not read metadata'), if self.formats.count() == 1:
_('Could not read metadata from %s format')%ext).exec_() fmt = self.formats.item(0)
return None, None if fmt is None:
error_dialog(self, _('No format selected'),
_('No format selected')).exec_()
return None, None
ext = fmt.ext.lower()
if fmt.path is None:
stream = self.db.format(self.row, ext, as_file=True)
else:
stream = open(fmt.path, 'r+b')
try:
mi = get_metadata(stream, ext)
return mi, ext
except:
error_dialog(self, _('Could not read metadata'),
_('Could not read metadata from %s format')%ext).exec_()
return None, None
finally:
if old != prefs['read_file_metadata']:
prefs['read_file_metadata'] = old
def set_metadata_from_format(self): def set_metadata_from_format(self):
mi, ext = self.get_selected_format_metadata() mi, ext = self.get_selected_format_metadata()