X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FIpkg.py;h=7f98f3dfccb14ae60c9aa4bcf89d72c1f6440833;hp=07a7eca4e3f631a110c3f284a0bf391900ec4ac4;hb=1b50c31e8c9a2d690500feac0065fd1ace941c80;hpb=659d369223c44aa066c092d4bbd3766d190a2a47 diff --git a/lib/python/Screens/Ipkg.py b/lib/python/Screens/Ipkg.py old mode 100644 new mode 100755 index 07a7eca..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): @@ -24,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() @@ -53,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] @@ -84,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")) @@ -96,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()