X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FIpkg.py;h=7f98f3dfccb14ae60c9aa4bcf89d72c1f6440833;hp=af80e00081ffc8ea7aeecbff890207d520452dc8;hb=1d557af556c71a9c658deea9cec783a66903c136;hpb=ad4f6abca583cdb5daaf066c67da436f0d8d8761 diff --git a/lib/python/Screens/Ipkg.py b/lib/python/Screens/Ipkg.py old mode 100644 new mode 100755 index af80e00..7f98f3d --- a/lib/python/Screens/Ipkg.py +++ b/lib/python/Screens/Ipkg.py @@ -3,6 +3,7 @@ from Components.Ipkg import IpkgComponent from Components.Label import Label from Components.Slider import Slider from Screens.Screen import Screen +from Screens.MessageBox import MessageBox from enigma import eTimer class Ipkg(Screen): @@ -10,6 +11,8 @@ class Ipkg(Screen): Screen.__init__(self, session) self.cmdList = cmdList + + self.sliderPackages = {} self.slider = Slider(0, len(cmdList)) self["slider"] = self.slider @@ -22,10 +25,11 @@ class Ipkg(Screen): self.packages = 0 self.error = 0 + self.processed_packages = [] self.activity = 0 self.activityTimer = eTimer() - self.activityTimer.timeout.get().append(self.doActivityTimer) + self.activityTimer.callback.append(self.doActivityTimer) #self.activityTimer.start(100, False) self.ipkg = IpkgComponent() @@ -51,7 +55,7 @@ class Ipkg(Screen): 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)) + self.status.setText(_("Done - Installed, upgraded or removed %d packages with %d errors") % (self.packages, self.error)) return False else: cmd = self.cmdList[self.runningCmd] @@ -82,11 +86,21 @@ class Ipkg(Screen): self.slider.setValue(self.sliderPackages[param]) self.package.setText(param) self.status.setText(_("Upgrading")) - self.packages += 1 + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 elif event == IpkgComponent.EVENT_INSTALL: self.package.setText(param) self.status.setText(_("Installing")) - self.packages += 1 + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_REMOVE: + self.package.setText(param) + self.status.setText(_("Removing")) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 elif event == IpkgComponent.EVENT_CONFIGURING: self.package.setText(param) self.status.setText(_("Configuring")) @@ -94,7 +108,16 @@ class Ipkg(Screen): self.error += 1 elif event == IpkgComponent.EVENT_DONE: self.runNextCmd() - + elif event == IpkgComponent.EVENT_MODIFIED: + self.session.openWithCallback( + self.modificationCallback, + MessageBox, + _("A configuration file (%s) was modified since Installation.\nDo you want to keep your version?") % (param) + ) + + def modificationCallback(self, res): + self.ipkg.write(res and "N" or "Y") + def exit(self): if not self.ipkg.isRunning(): self.close()