From 8d1bd687bb25d258942a1b34d15536e213a130a5 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Tue, 19 Dec 2006 07:34:37 +0000 Subject: [PATCH] add missing file --- lib/python/Screens/Ipkg.py | 99 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 lib/python/Screens/Ipkg.py diff --git a/lib/python/Screens/Ipkg.py b/lib/python/Screens/Ipkg.py new file mode 100644 index 00000000..95bf4f15 --- /dev/null +++ b/lib/python/Screens/Ipkg.py @@ -0,0 +1,99 @@ +from Components.ActionMap import ActionMap +from Components.Ipkg import IpkgComponent +from Components.Label import Label +from Components.Slider import Slider +from Screens.Screen import Screen +from enigma import eTimer + +class Ipkg(Screen): + def __init__(self, session, cmdList = []): + Screen.__init__(self, session) + + self.cmdList = cmdList + + self.slider = Slider(0, len(cmdList)) + self["slider"] = self.slider + self.activityslider = Slider(0, 100) + self["activityslider"] = self.activityslider + self.status = Label(_("Preparing... Please wait")) + self["status"] = self.status + self.package = Label() + self["package"] = self.package + + self.packages = 0 + self.error = 0 + + self.activity = 0 + self.activityTimer = eTimer() + self.activityTimer.timeout.get().append(self.doActivityTimer) + #self.activityTimer.start(100, False) + + self.ipkg = IpkgComponent() + self.ipkg.addCallback(self.ipkgCallback) + + self.runningCmd = None + self.runNextCmd() + + self["actions"] = ActionMap(["WizardActions"], + { + "ok": self.exit, + "back": self.exit + }, -1) + + def runNextCmd(self): + if self.runningCmd is None: + self.runningCmd = 0 + else: + self.runningCmd += 1 + print len(self.cmdList), self.runningCmd + if len(self.cmdList) - 1 < self.runningCmd: + self.activityslider.setValue(0) + self.slider.setValue(len(self.cmdList)) + + self.package.setText("") + self.status.setText(_("Done - Installed or upgraded %d packages with %d errors") % (self.packages, self.error)) + return False + else: + cmd = self.cmdList[self.runningCmd] + self.slider.setValue(self.runningCmd) + self.ipkg.startCmd(cmd[0], args = cmd[1]) + self.startActivityTimer() + + def doActivityTimer(self): + if not self.ipkg.isRunning(): + self.stopActivityTimer() + else: + self.activity += 1 + if self.activity == 100: + self.activity = 0 + self.activityslider.setValue(self.activity) + + def startActivityTimer(self): + self.activityTimer.start(100, False) + + def stopActivityTimer(self): + self.activityTimer.stop() + + def ipkgCallback(self, event, param): + if event == IpkgComponent.EVENT_DOWNLOAD: + self.status.setText(_("Downloading")) + elif event == IpkgComponent.EVENT_UPGRADE: + if self.sliderPackages.has_key(param): + self.slider.setValue(self.sliderPackages[param]) + self.package.setText(param) + self.status.setText(_("Upgrading")) + self.packages += 1 + elif event == IpkgComponent.EVENT_INSTALL: + self.package.setText(param) + self.status.setText(_("Installing")) + self.packages += 1 + elif event == IpkgComponent.EVENT_CONFIGURING: + self.package.setText(param) + self.status.setText(_("Configuring")) + elif event == IpkgComponent.EVENT_ERROR: + self.error += 1 + elif event == IpkgComponent.EVENT_DONE: + self.runNextCmd() + + def exit(self): + self.close() -- 2.30.2