[Uludag-commits] r10099 - trunk/tasma/package-manager/src

svn-uludag at uludag.org.tr svn-uludag at uludag.org.tr
2 Kas 2006 Per 12:17:30 EET


Author: faik
Date: Thu Nov  2 12:17:30 2006
New Revision: 10099

Modified:
   trunk/tasma/package-manager/src/Progress.py
   trunk/tasma/package-manager/src/package-manager.py
Log:
* bir takım changeler


Modified: trunk/tasma/package-manager/src/Progress.py
=================================================================
--- trunk/tasma/package-manager/src/Progress.py	(original)
+++ trunk/tasma/package-manager/src/Progress.py	Thu Nov  2 12:17:30 2006
@@ -2,6 +2,7 @@
 from kdecore import *
 from ProgressDialog import *
 
+import Basket
 import pisi
 
 class Progress(ProgressDialog):
@@ -15,10 +16,11 @@
         self.cancelButton.setEnabled(False)
         self.hideOperationDescription()
         
-        self.packageNo = 1
-        self.totalPackages = 1
+        self.packageNo = 0
+        self.totalPackages = 0
         self.packageName = ""
 
+        self.totalSize = 0
         self.totalDownloaded = 0
         self.curPkgDownloaded = 0
 
@@ -65,16 +67,24 @@
     
     def reset(self):
         self.setCurrentOperation(i18n("<b>Preparing PiSi...</b>"))
+
         self.completedInfo.setText(i18n("--"))
         self.totalInfo.setText(i18n("downloaded (total: -- )"))
         self.packageInfo.setText(i18n("-- / --  package"))
         self.rateInfo.setText(i18n("Speed: -- KB/s"))
+
         self.hideOperationDescription()
         self.hideStatus()
-        self.packageNo = 1
-        self.totalPackages = 1
+
+        # package statistics
+        self.packageNo = 0
+        self.totalPackages = 0
+
+        # size informations
         self.totalDownloaded = 0
         self.curPkgDownloaded = 0
+        self.totalSize = 0
+
         self.progressBar.setProgress(0)
         self.cancelButton.setEnabled(False)
 
@@ -119,7 +129,14 @@
         self.showOperationDescription()
 
     def updatePackageInfo(self):
-        self.packageInfo.setText(i18n("%1 / %2 package").arg(self.packageNo).arg(self.totalPackages))
+        if self.parent.state == Basket.install_state:
+            operation = i18n("installed")
+        elif self.parent.state == Basket.remove_state:
+            operation = i18n("removed")
+        elif self.parent.state == Basket.upgrade_state:
+            operation = i18n("upgraded")
+
+        self.packageInfo.setText(i18n("%1 / %2 package %3").arg(self.packageNo).arg(self.totalPackages).arg(operation))
 
     # pisi does not provide total downloaded size, just package based.
     def updateTotalDownloaded(self, pkgDownSize, pkgTotalSize):
@@ -132,19 +149,27 @@
     # pisi does not provide total operation percent, just package based.
     def updateTotalOperationPercent(self):
         totalDownloaded = self.totalDownloaded + self.curPkgDownloaded
-        totalSize = self.parent.basket.getBasketSize()
-        percent = (totalDownloaded * 100) / totalSize
+        try:
+            percent = (totalDownloaded * 100) / self.totalSize
+        except ZeroDivisionError:
+            percent = 100
+
         self.updateProgressBar(percent)
 
     def getCurrentDownloadedSize(self):
         totalDownloaded = self.totalDownloaded + self.curPkgDownloaded
 
         size = pisi.util.human_readable_size(totalDownloaded)
-        totaldownloaded = "%.1f %s" % (size[0], size[1])
+        totaldownloaded = "%.2f %s" % (size[0], size[1])
 
-        size = pisi.util.human_readable_size(self.parent.basket.getBasketSize())
-        totalsize = "%.1f %s" % (size[0], size[1])
+        size = pisi.util.human_readable_size(self.totalSize)
+        totalsize = "%.2f %s" % (size[0], size[1])
 
         return (totaldownloaded, totalsize)
 
-
+    def updateRemoveProgress(self):
+        try:
+            percent = (self.packageNo * 100) / self.totalPackages
+        except ZeroDivisionError:
+            percent = 0
+        self.updateProgressBar(percent)

Modified: trunk/tasma/package-manager/src/package-manager.py
=================================================================
--- trunk/tasma/package-manager/src/package-manager.py	(original)
+++ trunk/tasma/package-manager/src/package-manager.py	Thu Nov  2 12:17:30 2006
@@ -468,11 +468,12 @@
         return True
 
     def takeAction(self):
-
+        # remove action
         if self.state == remove_state:
             self.command.remove(self.basket.packages)
             self.progressDialog.hideStatus()
 
+        # install action
         elif self.state == install_state:
             if not self.conflictCheckPass():
                 self.finished("System.Manager.cancelled")
@@ -481,6 +482,7 @@
             self.progressDialog.showStatus()
             self.command.install(self.basket.packages)
 
+        # upgrade action
         elif self.state == upgrade_state:
             if not self.conflictCheckPass():
                 self.finished("System.Manager.cancelled")
@@ -596,35 +598,38 @@
 
         # operation is now cancellable
         if operation in ["started"]:
-            self.progressDialog.enableCancel()
-
-        if operation in ["removing"]:
-            if self.state == remove_state:
+            if self.state == install_state:
+                self.progressDialog.setCurrentOperation(i18n("<b>Installing Package(s)</b>"))
+            elif self.state == remove_state:
                 self.progressDialog.setCurrentOperation(i18n("<b>Removing Package(s)</b>"))
             elif self.state == upgrade_state:
                 self.progressDialog.setCurrentOperation(i18n("<b>Upgrading Package(s)</b>"))
 
+            self.progressDialog.enableCancel()
+
+        elif operation in ["removing"]:
             self.progressDialog.updateOperationDescription(i18n(str(operation)), package=data[1])
             self.progressDialog.updatePackageInfo()
 
         elif operation in ["cached"]:
-            self.progressDialog.totalDownloaded += int(data[2])
+            # totalSize is the to be downloaded size. And that is totalSize - cachedSize.
+            self.progressDialog.totalSize = int(data[1]) - int(data[2])
             self.progressDialog.updateTotalOperationPercent()
             self.progressDialog.setStatus()
             
         elif operation in ["installing"]:
-            if self.state == install_state:
-                self.progressDialog.setCurrentOperation(i18n("<b>Installing Package(s)</b>"))
-            elif self.state == upgrade_state:
-                self.progressDialog.setCurrentOperation(i18n("<b>Upgrading Package(s)</b>"))
-
             self.progressDialog.updateOperationDescription(i18n(str(operation)), package=data[1])
+            self.progressDialog.updatePackageInfo()
 
         elif operation in ["extracting", "configuring"]:
             self.progressDialog.updateOperationDescription(i18n(str(operation)), package=data[1])
 
         elif operation in ["removed", "installed", "upgraded"]:
-                self.progressDialog.packageNo += 1
+            self.progressDialog.packageNo += 1
+            self.progressDialog.updatePackageInfo()
+
+            if operation == "removed":
+                self.progressDialog.updateRemoveProgress()
 
         elif operation in ["savingrepos"]:
             self.progressDialog.setCurrentOperation(i18n("<b>Applying Repository Changes</b>"))
@@ -635,7 +640,7 @@
 
         else: # pisi.ui.packagetogo
             # pisi sends unnecessary remove order notify in the middle of install, upgrade, remove
-            if self.progressDialog.totalPackages == 1 and len(data) > 1:
+            if self.progressDialog.totalPackages == 0:
                 self.progressDialog.totalPackages = len(data)
 
     def showErrorMessage(self, message, error=i18n("Error")):


Uludag-commits mesaj listesiyle ilgili daha fazla bilgi