mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-04-27 11:44:26 +02:00
Windows device detection: If the driver order detection assigns the same drive order to disks on the device, use the drive letter when sorting.
This commit is contained in:
parent
02d68b83a1
commit
bcfbe81888
2 changed files with 9 additions and 3 deletions
|
|
@ -30,6 +30,12 @@ def __new__(self, val, order=0):
|
|||
typ.order = order
|
||||
return typ
|
||||
|
||||
def drivecmp(a, b):
|
||||
ans = cmp(getattr(a, 'order', 0), getattr(b, 'order', 0))
|
||||
if ans == 0:
|
||||
ans = cmp(a, b)
|
||||
return ans
|
||||
|
||||
|
||||
class WinPNPScanner(object):
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
device. This class handles device detection.
|
||||
'''
|
||||
|
||||
import os, subprocess, time, re, sys, glob, operator
|
||||
import os, subprocess, time, re, sys, glob
|
||||
from itertools import repeat
|
||||
|
||||
from calibre.devices.interface import DevicePlugin
|
||||
|
|
@ -225,7 +225,7 @@ def can_handle_windows(self, device_id, debug=False):
|
|||
return False
|
||||
|
||||
def open_windows(self):
|
||||
from calibre.devices.scanner import win_pnp_drives
|
||||
from calibre.devices.scanner import win_pnp_drives, drivecmp
|
||||
|
||||
time.sleep(5)
|
||||
drives = {}
|
||||
|
|
@ -263,7 +263,7 @@ def open_windows(self):
|
|||
if self.WINDOWS_MAIN_MEM in (self.WINDOWS_CARD_A_MEM,
|
||||
self.WINDOWS_CARD_B_MEM) or \
|
||||
self.WINDOWS_CARD_A_MEM == self.WINDOWS_CARD_B_MEM:
|
||||
letters = sorted(drives.values(), key=operator.attrgetter('order'))
|
||||
letters = sorted(drives.values(), cmp=drivecmp)
|
||||
drives = {}
|
||||
for which, letter in zip(['main', 'carda', 'cardb'], letters):
|
||||
drives[which] = letter
|
||||
|
|
|
|||
Loading…
Reference in a new issue