Screens/Ipkg.py: properly count processed packages. refs #550
[enigma2.git] / lib / python / Screens / Ipkg.py
old mode 100644 (file)
new mode 100755 (executable)
index 216cf8c..7f98f3d
@@ -25,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()
@@ -54,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]
@@ -85,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"))
@@ -99,10 +110,10 @@ class Ipkg(Screen):
                        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)
-                        )
+                               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")