diff -r babe80d84a3e -r 7eb04391adf7 eric6/WebBrowser/Download/DownloadItem.py --- a/eric6/WebBrowser/Download/DownloadItem.py Mon Sep 09 18:52:08 2019 +0200 +++ b/eric6/WebBrowser/Download/DownloadItem.py Thu Oct 03 11:12:10 2019 +0200 @@ -7,12 +7,12 @@ Module implementing a widget controlling a download. """ -from __future__ import unicode_literals import os -from PyQt5.QtCore import pyqtSlot, pyqtSignal, PYQT_VERSION, Qt, QTime, QUrl, \ - QStandardPaths, QFileInfo, QDateTime +from PyQt5.QtCore import ( + pyqtSlot, pyqtSignal, Qt, QTime, QUrl, QStandardPaths, QFileInfo, QDateTime +) from PyQt5.QtGui import QPalette, QDesktopServices from PyQt5.QtWidgets import QWidget, QStyle, QDialog from PyQt5.QtWebEngineWidgets import QWebEngineDownloadItem @@ -26,8 +26,6 @@ import UI.PixmapCache import Utilities.MimeTypes -import Globals -from Globals import qVersionTuple class DownloadItem(QWidget, Ui_DownloadItem): @@ -124,8 +122,10 @@ self.datetimeLabel.hide() self.infoLabel.clear() self.progressBar.setValue(0) - if self.__downloadItem.state() == \ - QWebEngineDownloadItem.DownloadRequested: + if ( + self.__downloadItem.state() == + QWebEngineDownloadItem.DownloadRequested + ): self.__getFileName() if not self.__fileName: self.__downloadItem.cancel() @@ -143,20 +143,15 @@ if self.__gettingFileName: return - if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800: - savePage = self.__downloadItem.type() == \ - QWebEngineDownloadItem.SavePage - elif qVersionTuple() >= (5, 7, 0) and PYQT_VERSION >= 0x50700: - savePage = self.__downloadItem.savePageFormat() != \ - QWebEngineDownloadItem.UnknownSaveFormat - else: - savePage = self.__downloadItem.path().lower().endswith( - (".mhtml", ".mht")) + savePage = self.__downloadItem.type() == ( + QWebEngineDownloadItem.SavePage + ) documentLocation = QStandardPaths.writableLocation( QStandardPaths.DocumentsLocation) - downloadDirectory = WebBrowserWindow\ - .downloadManager().downloadDirectory() + downloadDirectory = ( + WebBrowserWindow.downloadManager().downloadDirectory() + ) if self.__fileName: fileName = self.__fileName @@ -164,9 +159,8 @@ self.__toDownload = True ask = False else: - defaultFileName, originalFileName = \ - self.__saveFileName( - documentLocation if savePage else downloadDirectory) + defaultFileName, originalFileName = self.__saveFileName( + documentLocation if savePage else downloadDirectory) fileName = defaultFileName self.__originalFileName = originalFileName ask = True @@ -207,8 +201,10 @@ tempLocation = QStandardPaths.writableLocation( QStandardPaths.TempLocation) - fileName = tempLocation + '/' + \ + fileName = ( + tempLocation + '/' + QFileInfo(fileName).completeBaseName() + ) if ask and not self.__autoOpen: self.__gettingFileName = True @@ -218,50 +214,6 @@ defaultFileName, "") self.__gettingFileName = False - else: - # save page file name and format selection for Qt < 5.8.0 - self.__autoOpen = False - - filterList = [ - self.tr("Web Archive (*.mhtml *.mht)"), - self.tr("HTML File (*.html *.htm)"), - self.tr("HTML File with all resources (*.html *.htm)"), - ] - extensionsList = [ - # tuple of extensions for *nix and Windows - # keep in sync with filters list - (".mhtml", ".mht"), - (".html", ".htm"), - (".html", ".htm"), - ] - self.__gettingFileName = True - fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( - None, - self.tr("Save Web Page"), - defaultFileName, - ";;".join(filterList), - None) - self.__gettingFileName = False - if fileName: - index = filterList.index(selectedFilter) - if index == 0: - self.__downloadItem.setSavePageFormat( - QWebEngineDownloadItem.MimeHtmlSaveFormat) - elif index == 1: - self.__downloadItem.setSavePageFormat( - QWebEngineDownloadItem.SingleHtmlSaveFormat) - else: - self.__downloadItem.setSavePageFormat( - QWebEngineDownloadItem.CompleteHtmlSaveFormat) - extension = os.path.splitext(fileName)[1] - if not extension: - # add the platform specific default extension - if Globals.isWindowsPlatform(): - extensionsIndex = 1 - else: - extensionsIndex = 0 - extensions = extensionsList[index] - fileName += extensions[extensionsIndex] if not fileName: self.progressBar.setVisible(False) @@ -283,8 +235,8 @@ @type str """ fileInfo = QFileInfo(fileName) - WebBrowserWindow.downloadManager()\ - .setDownloadDirectory(fileInfo.absoluteDir().absolutePath()) + WebBrowserWindow.downloadManager().setDownloadDirectory( + fileInfo.absoluteDir().absolutePath()) self.filenameLabel.setText(fileInfo.fileName()) self.__fileName = fileName @@ -483,21 +435,25 @@ if bytesTotal > 0: remaining = timeString(timeRemaining) - info = self.tr("{0} of {1} ({2}/sec) {3}")\ - .format( - dataString(self.__bytesReceived), - bytesTotal == -1 and self.tr("?") or - dataString(bytesTotal), - speedString(speed), - remaining) + info = self.tr( + "{0} of {1} ({2}/sec) {3}" + ).format( + dataString(self.__bytesReceived), + bytesTotal == -1 and self.tr("?") or + dataString(bytesTotal), + speedString(speed), + remaining + ) else: if self.__bytesReceived == bytesTotal or bytesTotal == -1: - info = self.tr("{0} downloaded")\ - .format(dataString(self.__bytesReceived)) + info = self.tr( + "{0} downloaded" + ).format(dataString(self.__bytesReceived)) else: - info = self.tr("{0} of {1} - Stopped")\ - .format(dataString(self.__bytesReceived), - dataString(bytesTotal)) + info = self.tr( + "{0} of {1} - Stopped" + ).format(dataString(self.__bytesReceived), + dataString(bytesTotal)) self.infoLabel.setText(info) def downloading(self):