aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/Console.py
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-02-22 16:32:28 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-02-22 16:32:28 +0000
commita0842dd1b96a660acedf4894690c3ab37c24094d (patch)
tree7ba17e9e68c783a074fb903d55f5d5736fd24c3b /lib/python/Screens/Console.py
parent568bc959ef68e29e12afb857d01de2e1f7517e4d (diff)
downloadenigma2-a0842dd1b96a660acedf4894690c3ab37c24094d.tar.gz
enigma2-a0842dd1b96a660acedf4894690c3ab37c24094d.zip
create a Console screen for command executions
Diffstat (limited to 'lib/python/Screens/Console.py')
-rw-r--r--lib/python/Screens/Console.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/python/Screens/Console.py b/lib/python/Screens/Console.py
new file mode 100644
index 00000000..17d706f5
--- /dev/null
+++ b/lib/python/Screens/Console.py
@@ -0,0 +1,52 @@
+from enigma import eConsoleAppContainer
+from Screens.Screen import Screen
+from Components.ActionMap import ActionMap, NumberActionMap
+from Components.ScrollLabel import ScrollLabel
+
+class Console(Screen):
+ #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" />
+ </screen>"""
+
+ def __init__(self, session, args = None):
+ self.skin = Console.skin
+ Screen.__init__(self, session)
+
+ self["text"] = ScrollLabel("")
+ self["actions"] = ActionMap(["WizardActions", "DirectionActions"],
+ {
+ "ok": self.cancel,
+ "back": self.cancel,
+ "up": self["text"].pageUp,
+ "down": self["text"].pageDown
+ }, -1)
+
+ self.cmdlist = args
+
+ self.container = eConsoleAppContainer()
+ self.run = 0
+ self.container.appClosed.get().append(self.runFinished)
+ self.container.dataAvail.get().append(self.dataAvail)
+ self.onLayoutFinish.append(self.startRun) # dont start before gui is finished
+
+ def startRun(self):
+ self["text"].setText(_("Execution Progress:") + "\n\n")
+ self.container.execute("ipkg update")
+
+ def runFinished(self, retval):
+ self.run += 1
+ if self.run != len(self.cmdlist):
+ self.container.execute(self.cmdlist[self.run])
+ else:
+ str = self["text"].getText()
+ str += _("Execution finished!!");
+ self["text"].setText(str)
+
+ def cancel(self):
+ if self.run == len(self.cmdlist):
+ self.close()
+
+ def dataAvail(self, str):
+ self["text"].setText(self["text"].getText() + str) \ No newline at end of file