X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/addc55dea655c3d4cdde664d4127c40481fc93b5..0c2185a46606c2ac3e41205fe92e6d5ba4ead1b9:/lib/python/Components/Task.py diff --git a/lib/python/Components/Task.py b/lib/python/Components/Task.py index 3e648df1..659660e8 100644 --- a/lib/python/Components/Task.py +++ b/lib/python/Components/Task.py @@ -37,6 +37,9 @@ class Job(object): progress = property(getProgress) + def getStatustext(self): + return { self.NOT_STARTED: _("Waiting"), self.IN_PROGRESS: _("In Progress"), self.FINISHED: _("Finished"), self.FAILED: _("Failed") }[self.status] + def task_progress_changed_CB(self): self.state_changed() @@ -53,7 +56,7 @@ class Job(object): self.status = self.IN_PROGRESS self.state_changed() self.runNext() - sumTaskWeightings = sum([t.weighting for t in self.tasks]) + sumTaskWeightings = sum([t.weighting for t in self.tasks]) or 1 self.weightScale = self.end / float(sumTaskWeightings) def runNext(self): @@ -244,6 +247,7 @@ class JobManager: self.active_jobs = [ ] self.failed_jobs = [ ] self.job_classes = [ ] + self.in_background = False self.active_job = None def AddJob(self, job): @@ -258,8 +262,11 @@ class JobManager: def jobDone(self, job, task, problems): print "job", job, "completed with", problems, "in", task + from Tools import Notifications + if self.in_background: + from Screens.TaskView import JobView + Notifications.AddNotification(JobView, self.active_job) if problems: - from Tools import Notifications from Screens.MessageBox import MessageBox if problems[0].RECOVERABLE: Notifications.AddNotificationWithCallback(self.errorCB, MessageBox, _("Error: %s\nRetry?") % (problems[0].getErrorMessage(task))) @@ -282,6 +289,12 @@ class JobManager: self.active_job = None self.kick() + def getPendingJobs(self): + list = [ ] + if self.active_job: + list.append(self.active_job) + list += self.active_jobs + return list # some examples: #class PartitionExistsPostcondition: # def __init__(self, device): @@ -321,7 +334,7 @@ class Condition: RECOVERABLE = False def getErrorMessage(self, task): - return _("An error has occured. (%s in %s)") % (self.__class__.__name__, task.__class__.__name__) + return _("An unknown error occured!") + " (%s @ task %s)" % (self.__class__.__name__, task.__class__.__name__) class WorkspaceExistsPrecondition(Condition): def check(self, task):