From 65c53808daaaabdb8409e1a76877b04e73670079 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sat, 2 May 2009 17:01:30 -0400 Subject: [PATCH] Fix fdi generation bug. GUI send to device respects user settings for device formats. --- src/calibre/devices/prs500/cli/main.py | 3 ++- src/calibre/devices/usbms/device.py | 3 +-- src/calibre/gui2/device.py | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/calibre/devices/prs500/cli/main.py b/src/calibre/devices/prs500/cli/main.py index 2484ff2902..9211fcff41 100755 --- a/src/calibre/devices/prs500/cli/main.py +++ b/src/calibre/devices/prs500/cli/main.py @@ -205,7 +205,8 @@ def main(): scanner.scan() for d in device_plugins(): if scanner.is_device_connected(d): - dev = d(log_packets=options.log_packets) + dev = d + dev.reset(log_packets=options.log_packets) if dev is None: print >>sys.stderr, 'Unable to find a connected ebook reader.' diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index 50abbaf5f6..709ead05ef 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -90,12 +90,11 @@ class Device(DeviceConfig, DevicePlugin): @classmethod def get_fdi(cls): fdi = '' - for vid in cls.VENDOR_ID: for pid in cls.PRODUCT_ID: fdi_base_values = dict( app=__appname__, - deviceclass=cls.__class__.__name__, + deviceclass=cls.__name__, vendor_id=hex(vid), product_id=hex(pid), main_memory=cls.MAIN_MEMORY_VOLUME_LABEL, diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 800c802747..8dd639d7c2 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -436,7 +436,7 @@ class DeviceGUI(object): fmt = None if specific: d = ChooseFormatDialog(self, _('Choose format to send to device'), - self.device_manager.device_class.FORMATS) + self.device_manager.device_class.settings().format_map) d.exec_() fmt = d.format().lower() dest, sub_dest = dest.split(':') @@ -581,7 +581,7 @@ class DeviceGUI(object): ids = list(dynamic.get('news_to_be_synced', set([]))) ids = [id for id in ids if self.library_view.model().db.has_id(id)] files = self.library_view.model().get_preferred_formats_from_ids( - ids, self.device_manager.device_class.FORMATS) + ids, self.device_manager.device_class.settings().format_map) files = [f for f in files if f is not None] if not files: dynamic.set('news_to_be_synced', set([])) @@ -618,7 +618,7 @@ class DeviceGUI(object): return _files, _auto_rows = self.library_view.model().get_preferred_formats(rows, - self.device_manager.device_class.FORMATS, + self.device_manager.device_class.settings().format_map, paths=True, set_metadata=True, specific_format=specific_format, exclude_auto=do_auto_convert) @@ -667,7 +667,7 @@ class DeviceGUI(object): if specific_format == None: formats = [f.lower() for f in self.library_view.model().db.formats(row).split(',')] formats = formats if formats != None else [] - if list(set(formats).intersection(available_input_formats())) != [] and list(set(self.device_manager.device_class.FORMATS).intersection(available_output_formats())) != []: + if list(set(formats).intersection(available_input_formats())) != [] and list(set(self.device_manager.device_class.settings().format_map).intersection(available_output_formats())) != []: auto.append(row) else: bad.append(self.library_view.model().title(row)) @@ -682,8 +682,8 @@ class DeviceGUI(object): autos = '\n'.join('
  • %s
  • '%(i,) for i in autos) d = info_dialog(self, _('No suitable formats'), _('Auto converting the following books before uploading to the device:
    ')%(autos,)) - for fmt in self.device_manager.device_class.FORMATS: - if fmt in list(set(self.device_manager.device_class.FORMATS).intersection(set(available_output_formats()))): + for fmt in self.device_manager.device_class.settings().format_map: + if fmt in list(set(self.device_manager.device_class.settings().format_map).intersection(set(available_output_formats()))): format = fmt break d.exec_()