add 'layers' (in buffered mode, which is not working at the moment).
[enigma2.git] / lib / python / Screens / Console.py
index 98c373d5c2e94895449324654ddea8ee1a16354e..b8f74125b51ae5e606dbb7b10a986151c86ebea0 100644 (file)
@@ -1,6 +1,6 @@
 from enigma import eConsoleAppContainer
 from Screens.Screen import Screen
-from Components.ActionMap import ActionMap, NumberActionMap
+from Components.ActionMap import ActionMap
 from Components.ScrollLabel import ScrollLabel
 
 class Console(Screen):
@@ -10,10 +10,13 @@ class Console(Screen):
                        <widget name="text" position="0,0" size="550,400" font="Regular;15" />
                </screen>"""
                
-       def __init__(self, session, title = "Console", cmdlist = None):
+       def __init__(self, session, title = "Console", cmdlist = None, finishedCallback = None, closeOnSuccess = False):
                self.skin = Console.skin
                Screen.__init__(self, session)
 
+               self.finishedCallback = finishedCallback
+               self.closeOnSuccess = closeOnSuccess
+
                self["text"] = ScrollLabel("")
                self["actions"] = ActionMap(["WizardActions", "DirectionActions"], 
                {
@@ -50,7 +53,11 @@ class Console(Screen):
                        str = self["text"].getText()
                        str += _("Execution finished!!");
                        self["text"].setText(str)
-                       
+                       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()