--- 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()