Fixed a few issues with the download manager.

Wed, 13 Oct 2010 22:47:44 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 13 Oct 2010 22:47:44 +0200
changeset 673
1c1f3a125e68
parent 671
cc0471f53e74
child 674
59c4b38b20a5

Fixed a few issues with the download manager.

Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadItem.py file | annotate | diff | comparison | revisions
Helpviewer/Download/DownloadManager.py file | annotate | diff | comparison | revisions
Binary file Documentation/Help/source.qch has changed
--- a/Helpviewer/Download/DownloadItem.py	Mon Oct 11 14:57:26 2010 +0200
+++ b/Helpviewer/Download/DownloadItem.py	Wed Oct 13 22:47:44 2010 +0200
@@ -316,7 +316,8 @@
             self.on_stopButton_clicked()
         else:
             self.__startedSaving = True
-            if self.__finishedDownloading:
+            if (self.bytesTotal() == 0 and self.__reply.atEnd()) or \
+               self.__finishedDownloading:
                 self.__finished()
     
     def __networkError(self):
@@ -364,7 +365,10 @@
         
         @return total number of bytes (integer)
         """
-        return self.__reply.header(QNetworkRequest.ContentLengthHeader)
+        total = self.__reply.header(QNetworkRequest.ContentLengthHeader)
+        if total is None:
+            total = 0
+        return total
     
     def bytesReceived(self):
         """
@@ -383,6 +387,9 @@
         if not self.downloading():
             return -1.0
         
+        if self.bytesTotal() == 0:
+            return -1.0
+        
         timeRemaining = (self.bytesTotal() - self.bytesReceived()) / self.currentSpeed()
         
         # ETA should never be 0
@@ -409,7 +416,7 @@
         if self.__reply.error() != QNetworkReply.NoError:
             return
         
-        bytesTotal = self.__reply.header(QNetworkRequest.ContentLengthHeader)
+        bytesTotal = self.bytesTotal()
         running = not self.downloadedSuccessfully()
         
         speed = self.currentSpeed()
@@ -430,7 +437,7 @@
                     dataString(int(speed)), 
                     remaining)
         else:
-            if self.__bytesReceived == bytesTotal:
+            if self.__bytesReceived == bytesTotal or bytesTotal == 0:
                 info = self.trUtf8("{0} downloaded")\
                     .format(dataString(self.__output.size()))
             else:
--- a/Helpviewer/Download/DownloadManager.py	Mon Oct 11 14:57:26 2010 +0200
+++ b/Helpviewer/Download/DownloadManager.py	Wed Oct 13 22:47:44 2010 +0200
@@ -44,7 +44,6 @@
         self.__manager = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
         
         self.__iconProvider = None
-        self.__removePolicy = DownloadManager.RemoveNever
         self.__downloads = []
         self.__downloadDirectory = ""
         self.__loaded = False
@@ -196,6 +195,7 @@
         
         if remove:
             self.__model.removeRow(row)
+            self.__updateItemCount()
         
         self.cleanupButton.setEnabled(
             (len(self.__downloads) - self.activeDownloads()) > 0)
@@ -206,7 +206,7 @@
         
         @return remove policy (integer)
         """
-        return self.__removePolicy
+        return Preferences.getHelp("DownloadManagerRemovePolicy")
     
     def setRemovePolicy(self, policy):
         """
@@ -219,11 +219,10 @@
         assert policy in (DownloadManager.RemoveExit, DownloadManager.RemoveNever, 
                           DownloadManager.RemoveSuccessFullDownload)
         
-        if policy == self.__removePolicy:
+        if policy == self.removePolicy():
             return
         
-        self.__removePolicy = policy
-        self.__saveTimer.changeOccurred()
+        Preferences.setHelp("DownloadManagerRemovePolicy", self.policy)
     
     def save(self):
         """
@@ -232,10 +231,9 @@
         if not self.__loaded:
             return
         
-        Preferences.setHelp("DownloadManagerRemovePolicy", self.__removePolicy)
         Preferences.setHelp("DownloadManagerSize", self.size())
         Preferences.setHelp("DownloadManagerPosition", self.pos())
-        if self.__removePolicy == DownloadManager.RemoveExit:
+        if self.removePolicy() == DownloadManager.RemoveExit:
             return
         
         downloads = []
@@ -250,7 +248,6 @@
         if self.__loaded:
             return
         
-        self.__removePolicy = Preferences.getHelp("DownloadManagerRemovePolicy")
         size = Preferences.getHelp("DownloadManagerSize")
         if size.isValid():
             self.resize(size)

eric ide

mercurial