From adcd0c6b2871077b2e3f9cca8e2c0dfe91b57528 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 25 Jun 2010 10:29:34 -0600 Subject: [PATCH] Handle device being pulled with queued device jobs gracefully --- src/calibre/gui2/device.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 6be50cf293..2dad9871bb 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -75,10 +75,16 @@ class DeviceJob(BaseJob): # {{{ self.job_done() def abort(self, err): + call_job_done = False + if self.run_state == self.WAITING: + self.start_work() + call_job_done = True self._aborted = True self.failed = True self._details = unicode(err) self.exception = err + if call_job_done: + self.job_done() @property def log_file(self):