WebBrowser/Download/DownloadItem.py

changeset 5530
93f95c4b3153
parent 5526
11337e4fba52
child 5576
c866ec38662d
child 5736
000ea446ff4b
--- a/WebBrowser/Download/DownloadItem.py	Sat Feb 18 12:23:35 2017 +0100
+++ b/WebBrowser/Download/DownloadItem.py	Sat Feb 18 19:59:14 2017 +0100
@@ -110,12 +110,17 @@
         # reset info
         self.infoLabel.clear()
         self.progressBar.setValue(0)
-        self.__getFileName()
-        if not self.__fileName:
-            self.__downloadItem.cancel()
+        if self.__downloadItem.state() == \
+           QWebEngineDownloadItem.DownloadRequested:
+            self.__getFileName()
+            if not self.__fileName:
+                self.__downloadItem.cancel()
+            else:
+                self.__downloadItem.setPath(self.__fileName)
+                self.__downloadItem.accept()
         else:
-            self.__downloadItem.setPath(self.__fileName)
-            self.__downloadItem.accept()
+            fileName = self.__downloadItem.path()
+            self.__setFileName(fileName)
     
     def __getFileName(self):
         """
@@ -124,8 +129,10 @@
         if self.__gettingFileName:
             return
         
-        # TODO: Qt 5.8 - add support for QWebEngineDownloadItem.DownloadType
-        if qVersion() >= "5.7.0":
+        if qVersion() >= "5.8.0":
+            savePage = self.__downloadItem.type() == \
+                QWebEngineDownloadItem.SavePage
+        elif qVersion() >= "5.7.0":
             savePage = self.__downloadItem.savePageFormat() != \
                 QWebEngineDownloadItem.UnknownSaveFormat
         else:
@@ -197,7 +204,7 @@
                     "")
                 self.__gettingFileName = False
         else:
-            # TODO: Qt 5.8 - maybe format selection is not neccessary
+            # save page file name and format selection for Qt < 5.8.0
             self.__autoOpen = False
             
             filterList = [
@@ -250,6 +257,15 @@
             self.__canceledFileSelect = True
             return
         
+        self.__setFileName(fileName)
+    
+    def __setFileName(self, fileName):
+        """
+        Private method to set the file name to save the download into.
+        
+        @param fileName name of the file to save into
+        @type str
+        """
         fileInfo = QFileInfo(fileName)
         WebBrowserWindow.downloadManager()\
             .setDownloadDirectory(fileInfo.absoluteDir().absolutePath())
@@ -443,7 +459,7 @@
         else:
             if self.__bytesReceived == bytesTotal or bytesTotal == -1:
                 info = self.tr("{0} downloaded")\
-                    .format(dataString(self.__output.size()))
+                    .format(dataString(self.__bytesReceived))
             else:
                 info = self.tr("{0} of {1} - Stopped")\
                     .format(dataString(self.__bytesReceived),
@@ -488,8 +504,8 @@
         self.stopButton.setVisible(False)
         self.openButton.setEnabled(noError)
         self.openButton.setVisible(noError)
+        self.__state = DownloadItem.DownloadSuccessful
         self.__updateInfoLabel()
-        self.__state = DownloadItem.DownloadSuccessful
         self.statusChanged.emit()
         self.downloadFinished.emit()
         

eric ide

mercurial