From 5ce0d7aba84968d74cea76ef8629c0172a087a1b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 10 Dec 2009 10:18:43 -0700 Subject: [PATCH] Fix #4152 (Error launching calibre when Droid is mounted) --- src/calibre/devices/android/driver.py | 4 ++-- src/calibre/devices/usbms/device.py | 7 ++++++- src/calibre/devices/usbms/driver.py | 6 ++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index 3de38c3778..4b888fbebf 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -36,12 +36,12 @@ class ANDROID(USBMS): SUPPORTS_SUB_DIRS = True - def get_main_ebook_dir(self): + def post_open_callback(self): opts = self.settings() dirs = opts.extra_customization if not dirs: dirs = self.EBOOK_DIR_MAIN else: dirs = [x.strip() for x in dirs.split(',')] - return dirs + self.EBOOK_DIR_MAIN = dirs diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index 97486aff19..6da25ee382 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -578,7 +578,7 @@ class Device(DeviceConfig, DevicePlugin): try: self.open_windows() except DeviceError: - time.sleep(5) + time.sleep(7) self.open_windows() if isosx: try: @@ -587,6 +587,11 @@ class Device(DeviceConfig, DevicePlugin): time.sleep(7) self.open_osx() + self.post_open_callback() + + def post_open_callback(self): + pass + def eject_windows(self): from calibre.constants import plugins from threading import Thread diff --git a/src/calibre/devices/usbms/driver.py b/src/calibre/devices/usbms/driver.py index e2e6eb91fe..552badf860 100644 --- a/src/calibre/devices/usbms/driver.py +++ b/src/calibre/devices/usbms/driver.py @@ -21,7 +21,7 @@ from calibre.devices.usbms.device import Device from calibre.devices.usbms.books import BookList, Book from calibre.devices.mime import mime_type_ext -# CLI must come before Device as it implments the CLI functions that +# CLI must come before Device as it implements the CLI functions that # are inherited from the device interface in Device. class USBMS(CLI, Device): @@ -56,7 +56,9 @@ class USBMS(CLI, Device): return bl prefix = self._card_a_prefix if oncard == 'carda' else self._card_b_prefix if oncard == 'cardb' else self._main_prefix - ebook_dir = self.EBOOK_DIR_CARD_A if oncard == 'carda' else self.EBOOK_DIR_CARD_B if oncard == 'cardb' else self.EBOOK_DIR_MAIN + ebook_dir = self.EBOOK_DIR_CARD_A if oncard == 'carda' else \ + self.EBOOK_DIR_CARD_B if oncard == 'cardb' else \ + self.get_main_ebook_dir() # Get all books in the ebook_dir directory if self.SUPPORTS_SUB_DIRS: