From db7a29f0fccbf2b12929972e68f014e067f6c5ac Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 3 May 2010 09:39:17 -0600 Subject: [PATCH 1/3] Fix #5445 (Covers are not generated if Checkbox "Read Data from File only" is selected) --- src/calibre/gui2/dialogs/metadata_single.py | 47 ++++++++++++--------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index b33b94def0..f9d7cae336 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -180,27 +180,34 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.formats_changed = True def get_selected_format_metadata(self): - row = self.formats.currentRow() - fmt = self.formats.item(row) - if fmt is None: - 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') + old = prefs['read_file_metadata'] + if not old: + prefs['read_file_metadata'] = True 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 + row = self.formats.currentRow() + fmt = self.formats.item(row) + if fmt is None: + 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: + 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): mi, ext = self.get_selected_format_metadata() From 4f4902481142953bd622de7d3beb3908eed9d22f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 3 May 2010 09:44:07 -0600 Subject: [PATCH 2/3] Fix #5444 (Calibre Gives Error When Converting) --- src/calibre/ebooks/oeb/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index 2aabbf2e95..79f9f15248 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -1190,7 +1190,8 @@ class Manifest(object): if item in self.ids: item = self.ids[item] 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) if item in self.oeb.spine: self.oeb.spine.remove(item) From a873b8e31ebd871e4faad5b55fde1eb07f07ad2b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 3 May 2010 11:40:51 -0600 Subject: [PATCH 3/3] Implement #5450 (Support for HTC desire) --- src/calibre/devices/android/driver.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index cd43e2f38a..beed7c679d 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -18,7 +18,8 @@ class ANDROID(USBMS): FORMATS = ['epub', 'pdf'] VENDOR_ID = { - 0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100]}, + # HTC + 0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100], 0x0ff9 : [0x0100]}, # Motorola 0x22b8 : { 0x41d9 : [0x216], 0x2d67 : [0x100], 0x41db : [0x216]},