From a0935b190cf4bac0f0ea6a3fa1aadc9c856815f6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 19 Dec 2009 09:22:48 -0700 Subject: [PATCH 1/3] Possible fix for iriver detection on windows --- session.vim | 7 +++++++ src/calibre/devices/iriver/driver.py | 4 ++-- src/calibre/devices/usbms/device.py | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/session.vim b/session.vim index 56705f9528..6b965cff2f 100644 --- a/session.vim +++ b/session.vim @@ -13,4 +13,11 @@ base_dir = os.path.join(src_dir, 'calibre') vipy.session.initialize(project_name='calibre', src_dir=src_dir, project_dir=project_dir, base_dir=base_dir) + +def recipe_title_callback(raw): + return eval(raw.decode('utf-8')) + +vipy.session.add_content_browser('.r', ',r', 'Recipe', + vipy.session.glob_based_iterator(os.path.join(project_dir, 'resources', 'recipes', '*.recipe')), + vipy.session.regexp_based_matcher(r'title\s*=\s*(?P.+)', 'title', recipe_title_callback)) EOFPY diff --git a/src/calibre/devices/iriver/driver.py b/src/calibre/devices/iriver/driver.py index 030fe8f6bb..7373996213 100644 --- a/src/calibre/devices/iriver/driver.py +++ b/src/calibre/devices/iriver/driver.py @@ -13,7 +13,7 @@ class IRIVER_STORY(USBMS): name = 'Iriver Story Device Interface' gui_name = 'Iriver Story' description = _('Communicate with the Iriver Story reader.') - author = _('Kovid Goyal') + author = 'Kovid Goyal' supported_platforms = ['windows', 'osx', 'linux'] # Ordered list of supported formats @@ -35,7 +35,7 @@ class IRIVER_STORY(USBMS): SUPPORTS_SUB_DIRS = True - def windows_sort_drives(self, drives): + def windows_open_callback(self, drives): main = drives.get('main', None) card = drives.get('carda', None) if card and main and card < main: diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index 8ae401591e..33ba104e38 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -295,7 +295,7 @@ class Device(DeviceConfig, DevicePlugin): # This is typically needed when the device has the same # WINDOWS_MAIN_MEM and WINDOWS_CARD_A_MEM in which case - # if the devices is connected without a crad, the above + # if the devices is connected without a card, the above # will incorrectly identify the main mem as carda # See for example the driver for the Nook if 'main' not in drives and 'carda' in drives: From 319196add3ee3d7b5f2cd508baa544cfe42dd55c Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Sat, 19 Dec 2009 09:25:43 -0700 Subject: [PATCH 2/3] Add FB2 to list of supported formats for the JetBook --- src/calibre/devices/jetbook/driver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/devices/jetbook/driver.py b/src/calibre/devices/jetbook/driver.py index 40c5f31dda..6a09c7c345 100644 --- a/src/calibre/devices/jetbook/driver.py +++ b/src/calibre/devices/jetbook/driver.py @@ -20,13 +20,13 @@ from calibre.ebooks.metadata import string_to_authors class JETBOOK(USBMS): name = 'Ectaco JetBook Device Interface' description = _('Communicate with the JetBook eBook reader.') - author = _('James Ralston') + author = 'James Ralston' supported_platforms = ['windows', 'osx', 'linux'] # Ordered list of supported formats # Be sure these have an entry in calibre.devices.mime - FORMATS = ['epub', 'mobi', 'prc', 'txt', 'rtf', 'pdf'] + FORMATS = ['epub', 'mobi', 'prc', 'fb2', 'txt', 'rtf', 'pdf'] VENDOR_ID = [0x0525] PRODUCT_ID = [0xa4a5] From ee9e45d50d9a48aec8b2386f28c961bb224d454e Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Sat, 19 Dec 2009 18:18:13 -0700 Subject: [PATCH 3/3] Device drivers: Support for device specific icons --- resources/images/devices/italica.png | Bin 0 -> 7887 bytes resources/images/devices/kindle.jpg | Bin 0 -> 5885 bytes src/calibre/devices/eb600/driver.py | 1 + src/calibre/devices/interface.py | 2 ++ src/calibre/devices/kindle/driver.py | 1 + src/calibre/devices/usbms/device.py | 2 +- src/calibre/gui2/ui.py | 1 + src/calibre/gui2/widgets.py | 4 ++++ 8 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 resources/images/devices/italica.png create mode 100644 resources/images/devices/kindle.jpg diff --git a/resources/images/devices/italica.png b/resources/images/devices/italica.png new file mode 100644 index 0000000000000000000000000000000000000000..83852d9ffa41145a0404ea21ff391a29dbc70e26 GIT binary patch literal 7887 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 literal 0 HcmV?d00001 diff --git a/resources/images/devices/kindle.jpg b/resources/images/devices/kindle.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7641d88ed244abf0b3c7153460def9e2f7f41992 GIT binary patch literal 5885 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 GX8#W?eE4?& literal 0 HcmV?d00001 diff --git a/src/calibre/devices/eb600/driver.py b/src/calibre/devices/eb600/driver.py index f7ea9e0c24..738fcdf375 100644 --- a/src/calibre/devices/eb600/driver.py +++ b/src/calibre/devices/eb600/driver.py @@ -116,6 +116,7 @@ class ITALICA(EB600): name = 'Italica Device Interface' gui_name = 'Italica' + icon = I('devices/italica.png') FORMATS = ['epub', 'rtf', 'fb2', 'html', 'prc', 'mobi', 'pdf', 'txt'] diff --git a/src/calibre/devices/interface.py b/src/calibre/devices/interface.py index c9309a72fe..21aa3f5e5b 100644 --- a/src/calibre/devices/interface.py +++ b/src/calibre/devices/interface.py @@ -40,6 +40,8 @@ class DevicePlugin(Plugin): CAN_SET_METADATA = True #: Path separator for paths to books on device path_sep = os.sep + #: Icon for this device + icon = I('reader.svg') @classmethod def test_bcd_windows(cls, device_id, bcd): diff --git a/src/calibre/devices/kindle/driver.py b/src/calibre/devices/kindle/driver.py index de4ff19733..96aa296b5d 100644 --- a/src/calibre/devices/kindle/driver.py +++ b/src/calibre/devices/kindle/driver.py @@ -18,6 +18,7 @@ class KINDLE(USBMS): name = 'Kindle Device Interface' gui_name = 'Amazon Kindle' + icon = I('devices/kindle.jpg') description = _('Communicate with the Kindle eBook reader.') author = 'John Schember' supported_platforms = ['windows', 'osx', 'linux'] diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index 33ba104e38..c34157e878 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -295,7 +295,7 @@ class Device(DeviceConfig, DevicePlugin): # This is typically needed when the device has the same # WINDOWS_MAIN_MEM and WINDOWS_CARD_A_MEM in which case - # if the devices is connected without a card, the above + # if the device is connected without a card, the above # will incorrectly identify the main mem as carda # See for example the driver for the Nook if 'main' not in drives and 'carda' in drives: diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index d8ab5fb7a1..0fafb572c1 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -775,6 +775,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): _(' detected.'), 3000) self.device_connected = True self._sync_menu.enable_device_actions(True, self.device_manager.device.card_prefix()) + self.location_view.model().device_connected(self.device_manager.device) else: self.save_device_view_settings() self.device_connected = False diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 9bf904da71..cce594d557 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -242,6 +242,10 @@ class LocationModel(QAbstractListModel): return data + def device_connected(self, dev): + self.icons[1] = QIcon(dev.icon) + self.dataChanged.emit(self.index(1), self.index(1)) + def headerData(self, section, orientation, role): return NONE