Pull from trunk

This commit is contained in:
Kovid Goyal 2010-05-03 11:41:33 -06:00
commit 4b39dbfcdd
3 changed files with 31 additions and 22 deletions

View File

@ -18,7 +18,8 @@ class ANDROID(USBMS):
FORMATS = ['epub', 'pdf'] FORMATS = ['epub', 'pdf']
VENDOR_ID = { VENDOR_ID = {
0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100]}, # HTC
0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100], 0x0ff9 : [0x0100]},
# Motorola # Motorola
0x22b8 : { 0x41d9 : [0x216], 0x2d67 : [0x100], 0x41db : [0x216]}, 0x22b8 : { 0x41d9 : [0x216], 0x2d67 : [0x100], 0x41db : [0x216]},

View File

@ -1190,7 +1190,8 @@ class Manifest(object):
if item in self.ids: if item in self.ids:
item = self.ids[item] item = self.ids[item]
del self.ids[item.id] del self.ids[item.id]
del self.hrefs[item.href] if item.href in self.hrefs:
del self.hrefs[item.href]
self.items.remove(item) self.items.remove(item)
if item in self.oeb.spine: if item in self.oeb.spine:
self.oeb.spine.remove(item) self.oeb.spine.remove(item)

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()