diff --git a/src/calibre/devices/__init__.py b/src/calibre/devices/__init__.py index 816db4976d..3f35612a9e 100644 --- a/src/calibre/devices/__init__.py +++ b/src/calibre/devices/__init__.py @@ -194,59 +194,17 @@ def debug(ioreg_to_tmp=False, buf=None, plugins=None, pass def device_info(ioreg_to_tmp=False, buf=None): - from calibre.devices.scanner import DeviceScanner, win_pnp_drives - from calibre.constants import iswindows - import re + from calibre.devices.scanner import DeviceScanner res = {} - device_details = {} - device_set = set() - drive_details = {} - drive_set = set() - res['device_set'] = device_set - res['device_details'] = device_details - res['drive_details'] = drive_details - res['drive_set'] = drive_set + res['device_set'] = device_set = set() + res['device_details'] = device_details = {} - try: - s = DeviceScanner() - s.scan() - devices = (s.devices) - if not iswindows: - devices = [list(x) for x in devices] - for dev in devices: - for i in range(3): - dev[i] = hex(dev[i]) - d = dev[0] + dev[1] + dev[2] - device_set.add(d) - device_details[d] = dev[0:3] - else: - for dev in devices: - vid = re.search('vid_([0-9a-f]*)&', dev) - if vid: - vid = vid.group(1) - pid = re.search('pid_([0-9a-f]*)&', dev) - if pid: - pid = pid.group(1) - rev = re.search('rev_([0-9a-f]*)$', dev) - if rev: - rev = rev.group(1) - d = vid+pid+rev - device_set.add(d) - device_details[d] = (vid, pid, rev) - - drives = win_pnp_drives(debug=False) - for drive,details in drives.iteritems(): - order = 'ORD_' + str(drive.order) - ven = re.search('VEN_([^&]*)&', details) - if ven: - ven = ven.group(1) - prod = re.search('PROD_([^&]*)&', details) - if prod: - prod = prod.group(1) - d = (order, ven, prod) - drive_details[drive] = d - drive_set.add(drive) - finally: - pass + s = DeviceScanner() + s.scan() + devices = s.devices + devices = [tuple(x) for x in devices] + for dev in devices: + device_set.add(dev) + device_details[dev] = dev[0:3] return res diff --git a/src/calibre/devices/user_defined/driver.py b/src/calibre/devices/user_defined/driver.py index 2449d5062c..24dac528ce 100644 --- a/src/calibre/devices/user_defined/driver.py +++ b/src/calibre/devices/user_defined/driver.py @@ -34,41 +34,33 @@ class USER_DEFINED(USBMS): SUPPORTS_SUB_DIRS = True EXTRA_CUSTOMIZATION_MESSAGE = [ - _('USB Vendor ID (in hex)') + ':::
' + - _('Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', - _('USB Product ID (in hex)')+ ':::' + - _('Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', - _('USB Revision ID (in hex)')+ ':::' + - _('Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', + _('USB Vendor ID (in hex)') + ':::' + _( + 'Get this ID using Preferences -> Misc -> Get information to ' + 'set up the user-defined device') + '
', + _('USB Product ID (in hex)')+ ':::' + _( + 'Get this ID using Preferences -> Misc -> Get information to ' + 'set up the user-defined device') + '
', + _('USB Revision ID (in hex)')+ ':::' + _( + 'Get this ID using Preferences -> Misc -> Get information to ' + 'set up the user-defined device') + '
', '', - _('Windows main memory vendor string') + ':::' + - _('This field is used only on windows. ' - 'Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', - _('Windows main memory ID string') + ':::' + - _('This field is used only on windows. ' - 'Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', - _('Windows card A vendor string') + ':::' + - _('This field is used only on windows. ' - 'Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', - _('Windows card A ID string') + ':::' + - _('This field is used only on windows. ' - 'Get this ID using Preferences -> Misc -> Get information to ' - 'set up the user-defined device') + '
', - _('Main memory folder') + ':::' + - _('Enter the folder where the books are to be stored. This folder ' - 'is prepended to any send_to_device template') + '
', - _('Card A folder') + ':::' + - _('Enter the folder where the books are to be stored. This folder ' - 'is prepended to any send_to_device template') + '
', - _('Swap main and card A') + ':::' + - _('Check this box if the device\'s main memory is being seen as ' - 'card a and the card is being seen as main memory') + '
', + _('Unused (leave blank)') + ':::' + _( + 'This field is no longer used, leave it blank.') + '
', + _('Unused (leave blank)') + ':::' + _( + 'This field is no longer used, leave it blank.') + '
', + _('Unused (leave blank)') + ':::' + _( + 'This field is no longer used, leave it blank.') + '
', + _('Unused (leave blank)') + ':::' + _( + 'This field is no longer used, leave it blank.') + '
', + _('Main memory folder') + ':::' + _( + 'Enter the folder where the books are to be stored. This folder ' + 'is prepended to any send_to_device template') + '
', + _('Card A folder') + ':::' + _( + 'Enter the folder where the books are to be stored. This folder ' + 'is prepended to any send_to_device template') + '
', + _('Swap main and card A') + ':::' + _( + 'Check this box if the device\'s main memory is being seen as ' + 'card a and the card is being seen as main memory') + '
', ] EXTRA_CUSTOMIZATION_DEFAULT = [ '0xffff', diff --git a/src/calibre/gui2/preferences/device_user_defined.py b/src/calibre/gui2/preferences/device_user_defined.py index e08a726fdc..7e8bc890f1 100644 --- a/src/calibre/gui2/preferences/device_user_defined.py +++ b/src/calibre/gui2/preferences/device_user_defined.py @@ -10,8 +10,6 @@ __docformat__ = 'restructuredtext en' from PyQt5.Qt import QDialog, QVBoxLayout, QPlainTextEdit, QTimer, \ QDialogButtonBox, QPushButton, QApplication, QIcon, QMessageBox -from calibre.constants import iswindows - def step_dialog(parent, title, msg, det_msg=''): d = QMessageBox(parent) d.setWindowTitle(title) @@ -60,11 +58,12 @@ class UserDefinedDevice(QDialog): self.close() return after = device_info() - new_drives = after['drive_set'] - before['drive_set'] new_devices = after['device_set'] - before['device_set'] res = '' - if (not iswindows or len(new_drives)) and len(new_devices) == 1: + if len(new_devices) == 1: def fmtid(x): + if isinstance(x, (int, long)): + x = hex(x) if not x.startswith('0x'): x = '0x' + x return x @@ -76,20 +75,6 @@ class UserDefinedDevice(QDialog): fmtid(after['device_details'][d][1]) + '\n' res += _('USB Revision ID (in hex)') + ': ' + \ fmtid(after['device_details'][d][2]) + '\n' - if iswindows: - # sort the drives by the order number - for i,d in enumerate(sorted(new_drives, - key=lambda x: after['drive_details'][x][0])): - if i == 0: - res += _('Windows main memory vendor string') + ': ' + \ - after['drive_details'][d][1] + '\n' - res += _('Windows main memory ID string') + ': ' + \ - after['drive_details'][d][2] + '\n' - else: - res += _('Windows card A vendor string') + ': ' + \ - after['drive_details'][d][1] + '\n' - res += _('Windows card A ID string') + ': ' + \ - after['drive_details'][d][2] + '\n' trailer = _( 'Copy these values to the clipboard, paste them into an ' 'editor, then enter them into the USER_DEVICE by '