[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