diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-02-22 16:32:28 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-02-22 16:32:28 +0000 |
| commit | a0842dd1b96a660acedf4894690c3ab37c24094d (patch) | |
| tree | 7ba17e9e68c783a074fb903d55f5d5736fd24c3b /lib/python/Screens | |
| parent | 568bc959ef68e29e12afb857d01de2e1f7517e4d (diff) | |
| download | enigma2-a0842dd1b96a660acedf4894690c3ab37c24094d.tar.gz enigma2-a0842dd1b96a660acedf4894690c3ab37c24094d.zip | |
create a Console screen for command executions
Diffstat (limited to 'lib/python/Screens')
| -rw-r--r-- | lib/python/Screens/Console.py | 52 | ||||
| -rw-r--r-- | lib/python/Screens/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/python/Screens/__init__.py | 2 |
3 files changed, 55 insertions, 2 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 diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am index 2629315f..3365e97f 100644 --- a/lib/python/Screens/Makefile.am +++ b/lib/python/Screens/Makefile.am @@ -8,5 +8,6 @@ install_PYTHON = \ EpgSelection.py EventView.py Mute.py Standby.py ServiceInfo.py \ AudioSelection.py InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \ Dish.py SubserviceSelection.py LanguageSelection.py StartWizard.py \ - TutorialWizard.py PluginBrowser.py MinuteInput.py Scart.py PVRState.py + TutorialWizard.py PluginBrowser.py MinuteInput.py Scart.py PVRState.py \ + Console.py diff --git a/lib/python/Screens/__init__.py b/lib/python/Screens/__init__.py index a8e1851c..06378dc3 100644 --- a/lib/python/Screens/__init__.py +++ b/lib/python/Screens/__init__.py @@ -5,4 +5,4 @@ __all__ = ["ChannelSelection", "ClockDisplay", "ConfigMenu", "Satconfig", "Scanconfig", "Ci.py", "Volume.py", "Mute.py", "EpgSelection", "EventView", "Standby", "ServiceInfo", "AudioSelection", "SubserviceSelection", "InfoBarGenerics", "HelpMenu", "Wizard", - "PVRState"] + "PVRState", "Console" ] |
