git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixes bug #465
[enigma2.git]
/
lib
/
python
/
Screens
/
Console.py
diff --git
a/lib/python/Screens/Console.py
b/lib/python/Screens/Console.py
index c2e1688d593f29a4db13c862af7d2190173d485b..2058c041f887ea11951bba5570af639483981bc3 100644
(file)
--- a/
lib/python/Screens/Console.py
+++ b/
lib/python/Screens/Console.py
@@
-7,14
+7,14
@@
class Console(Screen):
#TODO move this to skin.xml
skin = """
<screen position="100,100" size="550,400" title="Command execution..." >
#TODO move this to skin.xml
skin = """
<screen position="100,100" size="550,400" title="Command execution..." >
- <widget name="text" position="0,0" size="550,400" font="
Regular;15
" />
+ <widget name="text" position="0,0" size="550,400" font="
Console;14
" />
</screen>"""
</screen>"""
- def __init__(self, session, title = "Console", cmdlist = None, finishedCallback = None):
- self.skin = Console.skin
+ def __init__(self, session, title = "Console", cmdlist = None, finishedCallback = None, closeOnSuccess = False):
Screen.__init__(self, session)
self.finishedCallback = finishedCallback
Screen.__init__(self, session)
self.finishedCallback = finishedCallback
+ self.closeOnSuccess = closeOnSuccess
self["text"] = ScrollLabel("")
self["actions"] = ActionMap(["WizardActions", "DirectionActions"],
self["text"] = ScrollLabel("")
self["actions"] = ActionMap(["WizardActions", "DirectionActions"],
@@
-32,8
+32,8
@@
class Console(Screen):
self.container = eConsoleAppContainer()
self.run = 0
self.container = eConsoleAppContainer()
self.run = 0
- self.container.appClosed.
get().
append(self.runFinished)
- self.container.dataAvail.
get().
append(self.dataAvail)
+ self.container.appClosed.append(self.runFinished)
+ self.container.dataAvail.append(self.dataAvail)
self.onLayoutFinish.append(self.startRun) # dont start before gui is finished
def updateTitle(self):
self.onLayoutFinish.append(self.startRun) # dont start before gui is finished
def updateTitle(self):
@@
-42,22
+42,29
@@
class Console(Screen):
def startRun(self):
self["text"].setText(_("Execution Progress:") + "\n\n")
print "Console: executing in run", self.run, " the command:", self.cmdlist[self.run]
def startRun(self):
self["text"].setText(_("Execution Progress:") + "\n\n")
print "Console: executing in run", self.run, " the command:", self.cmdlist[self.run]
- self.container.execute(self.cmdlist[self.run])
+ if self.container.execute(self.cmdlist[self.run]): #start of container application failed...
+ self.runFinished(-1) # so we must call runFinished manual
def runFinished(self, retval):
self.run += 1
if self.run != len(self.cmdlist):
def runFinished(self, retval):
self.run += 1
if self.run != len(self.cmdlist):
- self.container.execute(self.cmdlist[self.run])
+ if self.container.execute(self.cmdlist[self.run]): #start of container application failed...
+ self.runFinished(-1) # so we must call runFinished manual
else:
str = self["text"].getText()
str += _("Execution finished!!");
self["text"].setText(str)
else:
str = self["text"].getText()
str += _("Execution finished!!");
self["text"].setText(str)
+ self["text"].lastPage()
if self.finishedCallback is not None:
self.finishedCallback()
if self.finishedCallback is not None:
self.finishedCallback()
-
+ if not retval and self.closeOnSuccess:
+ self.cancel()
+
def cancel(self):
if self.run == len(self.cmdlist):
self.close()
def cancel(self):
if self.run == len(self.cmdlist):
self.close()
+ self.container.appClosed.remove(self.runFinished)
+ self.container.dataAvail.remove(self.dataAvail)
def dataAvail(self, str):
self["text"].setText(self["text"].getText() + str)
def dataAvail(self, str):
self["text"].setText(self["text"].getText() + str)