mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
Ejecting removes device from GUI
This commit is contained in:
parent
1b52e46586
commit
d620bb43d3
@ -77,7 +77,8 @@ class DeviceManager(Thread):
|
|||||||
'''
|
'''
|
||||||
Thread.__init__(self)
|
Thread.__init__(self)
|
||||||
self.setDaemon(True)
|
self.setDaemon(True)
|
||||||
self.devices = [[d, False] for d in device_plugins()]
|
# [Device driver, Showing in GUI, Ejected]
|
||||||
|
self.devices = [[d, False, False] for d in device_plugins()]
|
||||||
self.device = None
|
self.device = None
|
||||||
self.device_class = None
|
self.device_class = None
|
||||||
self.sleep_time = sleep_time
|
self.sleep_time = sleep_time
|
||||||
@ -93,6 +94,8 @@ class DeviceManager(Thread):
|
|||||||
for device in self.devices:
|
for device in self.devices:
|
||||||
connected = self.scanner.is_device_connected(device[0])
|
connected = self.scanner.is_device_connected(device[0])
|
||||||
if connected and not device[1]:
|
if connected and not device[1]:
|
||||||
|
if device[2]:
|
||||||
|
continue
|
||||||
try:
|
try:
|
||||||
dev = device[0]
|
dev = device[0]
|
||||||
dev.reset()
|
dev.reset()
|
||||||
@ -119,13 +122,23 @@ class DeviceManager(Thread):
|
|||||||
job.abort(Exception(_('Device no longer connected.')))
|
job.abort(Exception(_('Device no longer connected.')))
|
||||||
except Queue.Empty:
|
except Queue.Empty:
|
||||||
break
|
break
|
||||||
|
device[2] = False
|
||||||
self.device = None
|
self.device = None
|
||||||
self.connected_slot(False)
|
self.connected_slot(False)
|
||||||
device[1] ^= True
|
device[1] ^= True
|
||||||
|
|
||||||
def umount_device(self):
|
def umount_device(self):
|
||||||
|
if self.device is not None:
|
||||||
self.device.eject()
|
self.device.eject()
|
||||||
self.device = None
|
dev = None
|
||||||
|
for x in self.devices:
|
||||||
|
if x[0] is self.device:
|
||||||
|
dev = x
|
||||||
|
break
|
||||||
|
if dev is not None:
|
||||||
|
dev[2] = True
|
||||||
|
self.connected_slot(False)
|
||||||
|
|
||||||
|
|
||||||
def next(self):
|
def next(self):
|
||||||
if not self.jobs.empty():
|
if not self.jobs.empty():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user