X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bf379ed2ce93bc09432f3b5f323abaacbe1237ce..da079b71c4d78f496dd7913a001068957746f750:/lib/python/Components/Task.py diff --git a/lib/python/Components/Task.py b/lib/python/Components/Task.py index a87f58d9..ab85c667 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() @@ -159,9 +162,9 @@ class Task(object): self.task_progress_changed = task_progress_changed from enigma import eConsoleAppContainer self.container = eConsoleAppContainer() - self.container.appClosed.get().append(self.processFinished) - self.container.stdoutAvail.get().append(self.processStdout) - self.container.stderrAvail.get().append(self.processStderr) + self.container.appClosed.append(self.processFinished) + self.container.stdoutAvail.append(self.processStdout) + self.container.stderrAvail.append(self.processStderr) assert self.cmd is not None assert len(self.args) >= 1 @@ -169,7 +172,7 @@ class Task(object): if self.cwd is not None: self.container.setCWD(self.cwd) - print "execute:", self.container.execute(self.cmd, self.args), self.cmd, " ".join(self.args) + print "execute:", self.container.execute(self.cmd, *self.args), self.cmd, *self.args if self.initial_input: self.writeInput(self.initial_input) @@ -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):