--- a/WebBrowser/Download/DownloadItem.py Sun Feb 26 15:54:49 2017 +0100 +++ b/WebBrowser/Download/DownloadItem.py Fri Mar 03 18:34:21 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,7 +129,10 @@ if self.__gettingFileName: return - 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: @@ -196,6 +204,7 @@ "") self.__gettingFileName = False else: + # save page file name and format selection for Qt < 5.8.0 self.__autoOpen = False filterList = [ @@ -248,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())