WebBrowser/Download/DownloadItem.py

changeset 5530
93f95c4b3153
parent 5526
11337e4fba52
child 5576
c866ec38662d
child 5736
000ea446ff4b
equal deleted inserted replaced
5527:4fdbb36fe794 5530:93f95c4b3153
108 self.__downloadItem.finished.connect(self.__finished) 108 self.__downloadItem.finished.connect(self.__finished)
109 109
110 # reset info 110 # reset info
111 self.infoLabel.clear() 111 self.infoLabel.clear()
112 self.progressBar.setValue(0) 112 self.progressBar.setValue(0)
113 self.__getFileName() 113 if self.__downloadItem.state() == \
114 if not self.__fileName: 114 QWebEngineDownloadItem.DownloadRequested:
115 self.__downloadItem.cancel() 115 self.__getFileName()
116 else: 116 if not self.__fileName:
117 self.__downloadItem.setPath(self.__fileName) 117 self.__downloadItem.cancel()
118 self.__downloadItem.accept() 118 else:
119 self.__downloadItem.setPath(self.__fileName)
120 self.__downloadItem.accept()
121 else:
122 fileName = self.__downloadItem.path()
123 self.__setFileName(fileName)
119 124
120 def __getFileName(self): 125 def __getFileName(self):
121 """ 126 """
122 Private method to get the file name to save to from the user. 127 Private method to get the file name to save to from the user.
123 """ 128 """
124 if self.__gettingFileName: 129 if self.__gettingFileName:
125 return 130 return
126 131
127 # TODO: Qt 5.8 - add support for QWebEngineDownloadItem.DownloadType 132 if qVersion() >= "5.8.0":
128 if qVersion() >= "5.7.0": 133 savePage = self.__downloadItem.type() == \
134 QWebEngineDownloadItem.SavePage
135 elif qVersion() >= "5.7.0":
129 savePage = self.__downloadItem.savePageFormat() != \ 136 savePage = self.__downloadItem.savePageFormat() != \
130 QWebEngineDownloadItem.UnknownSaveFormat 137 QWebEngineDownloadItem.UnknownSaveFormat
131 else: 138 else:
132 savePage = self.__downloadItem.path().lower().endswith( 139 savePage = self.__downloadItem.path().lower().endswith(
133 (".mhtml", ".mht")) 140 (".mhtml", ".mht"))
195 self.tr("Save File"), 202 self.tr("Save File"),
196 defaultFileName, 203 defaultFileName,
197 "") 204 "")
198 self.__gettingFileName = False 205 self.__gettingFileName = False
199 else: 206 else:
200 # TODO: Qt 5.8 - maybe format selection is not neccessary 207 # save page file name and format selection for Qt < 5.8.0
201 self.__autoOpen = False 208 self.__autoOpen = False
202 209
203 filterList = [ 210 filterList = [
204 self.tr("Web Archive (*.mhtml *.mht)"), 211 self.tr("Web Archive (*.mhtml *.mht)"),
205 self.tr("HTML File (*.html *.htm)"), 212 self.tr("HTML File (*.html *.htm)"),
248 self.tr("Download canceled: {0}") 255 self.tr("Download canceled: {0}")
249 .format(QFileInfo(defaultFileName).fileName())) 256 .format(QFileInfo(defaultFileName).fileName()))
250 self.__canceledFileSelect = True 257 self.__canceledFileSelect = True
251 return 258 return
252 259
260 self.__setFileName(fileName)
261
262 def __setFileName(self, fileName):
263 """
264 Private method to set the file name to save the download into.
265
266 @param fileName name of the file to save into
267 @type str
268 """
253 fileInfo = QFileInfo(fileName) 269 fileInfo = QFileInfo(fileName)
254 WebBrowserWindow.downloadManager()\ 270 WebBrowserWindow.downloadManager()\
255 .setDownloadDirectory(fileInfo.absoluteDir().absolutePath()) 271 .setDownloadDirectory(fileInfo.absoluteDir().absolutePath())
256 self.filenameLabel.setText(fileInfo.fileName()) 272 self.filenameLabel.setText(fileInfo.fileName())
257 273
441 dataString(int(speed)), 457 dataString(int(speed)),
442 remaining) 458 remaining)
443 else: 459 else:
444 if self.__bytesReceived == bytesTotal or bytesTotal == -1: 460 if self.__bytesReceived == bytesTotal or bytesTotal == -1:
445 info = self.tr("{0} downloaded")\ 461 info = self.tr("{0} downloaded")\
446 .format(dataString(self.__output.size())) 462 .format(dataString(self.__bytesReceived))
447 else: 463 else:
448 info = self.tr("{0} of {1} - Stopped")\ 464 info = self.tr("{0} of {1} - Stopped")\
449 .format(dataString(self.__bytesReceived), 465 .format(dataString(self.__bytesReceived),
450 dataString(bytesTotal)) 466 dataString(bytesTotal))
451 self.infoLabel.setText(info) 467 self.infoLabel.setText(info)
486 self.progressBar.setVisible(False) 502 self.progressBar.setVisible(False)
487 self.stopButton.setEnabled(False) 503 self.stopButton.setEnabled(False)
488 self.stopButton.setVisible(False) 504 self.stopButton.setVisible(False)
489 self.openButton.setEnabled(noError) 505 self.openButton.setEnabled(noError)
490 self.openButton.setVisible(noError) 506 self.openButton.setVisible(noError)
507 self.__state = DownloadItem.DownloadSuccessful
491 self.__updateInfoLabel() 508 self.__updateInfoLabel()
492 self.__state = DownloadItem.DownloadSuccessful
493 self.statusChanged.emit() 509 self.statusChanged.emit()
494 self.downloadFinished.emit() 510 self.downloadFinished.emit()
495 511
496 if self.__autoOpen: 512 if self.__autoOpen:
497 self.__open() 513 self.__open()

eric ide

mercurial