Mon, 17 Oct 2016 19:59:52 +0200
Fixed a few code style issues.
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
4631
5c1a96925da4
Updated copyright for 2016.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4443
diff
changeset
|
3 | # Copyright (c) 2010 - 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a widget controlling a download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3145
a9de05d4a22f
# __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3060
diff
changeset
|
10 | from __future__ import unicode_literals |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2523
diff
changeset
|
11 | |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
12 | import os |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
13 | |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
14 | from PyQt5.QtCore import pyqtSlot, pyqtSignal, qVersion, Qt, QTime, QUrl, \ |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
15 | QStandardPaths, QFileInfo |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
16 | from PyQt5.QtGui import QPalette, QDesktopServices |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
17 | from PyQt5.QtWidgets import QWidget, QStyle, QDialog |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
18 | from PyQt5.QtWebEngineWidgets import QWebEngineDownloadItem |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
20 | from E5Gui import E5FileDialog |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | from .Ui_DownloadItem import Ui_DownloadItem |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | from .DownloadUtilities import timeString, dataString |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
25 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | import UI.PixmapCache |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
28 | import Utilities.MimeTypes |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
29 | import Globals |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
31 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | class DownloadItem(QWidget, Ui_DownloadItem): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | Class implementing a widget controlling a download. |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
35 | |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
36 | @signal statusChanged() emitted upon a status change of a download |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
37 | @signal downloadFinished() emitted when a download finished |
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
38 | @signal progress(int, int) emitted to signal the download progress |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | statusChanged = pyqtSignal() |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
41 | downloadFinished = pyqtSignal() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | progress = pyqtSignal(int, int) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
44 | Downloading = 0 |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
45 | DownloadSuccessful = 1 |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
46 | DownloadCancelled = 2 |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
47 | |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
48 | def __init__(self, downloadItem=None, parent=None): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | Constructor |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
52 | @param downloadItem reference to the download object containing the |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
53 | download data. |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
54 | @keyparam parent reference to the parent widget (QWidget) |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
55 | @type QWebEngineDownloadItem |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2523
diff
changeset
|
57 | super(DownloadItem, self).__init__(parent) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.setupUi(self) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | p = self.infoLabel.palette() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | p.setColor(QPalette.Text, Qt.darkGray) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.infoLabel.setPalette(p) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.progressBar.setMaximum(0) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | self.stopButton.setIcon(UI.PixmapCache.getIcon("stopLoading.png")) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | self.openButton.setIcon(UI.PixmapCache.getIcon("open.png")) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | self.openButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.openButton.setVisible(False) |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
70 | |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
71 | self.__state = DownloadItem.Downloading |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | icon = self.style().standardIcon(QStyle.SP_FileIcon) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.fileIcon.setPixmap(icon.pixmap(48, 48)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
76 | self.__downloadItem = downloadItem |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
77 | self.__pageUrl = \ |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
78 | WebBrowserWindow.mainWindow().getWindow().currentBrowser().url() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.__bytesReceived = 0 |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
80 | self.__bytesTotal = -1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.__downloadTime = QTime() |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
82 | self.__fileName = "" |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
83 | self.__originalFileName = "" |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.__finishedDownloading = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | self.__gettingFileName = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | self.__canceledFileSelect = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | self.__autoOpen = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__initialize() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
91 | def __initialize(self): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | """ |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
93 | Private method to initialize the widget. |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
95 | if self.__downloadItem is None: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | self.__finishedDownloading = False |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
99 | self.__bytesReceived = 0 |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
100 | self.__bytesTotal = -1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
102 | # start timer for the download estimation |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
103 | self.__downloadTime.start() |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
104 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
105 | # attach to the download item object |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
106 | self.__url = self.__downloadItem.url() |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
107 | self.__downloadItem.downloadProgress.connect(self.__downloadProgress) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
108 | self.__downloadItem.finished.connect(self.__finished) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | # reset info |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | self.infoLabel.clear() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.progressBar.setValue(0) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | self.__getFileName() |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
114 | if not self.__fileName: |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
115 | self.__downloadItem.cancel() |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
116 | else: |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
117 | self.__downloadItem.setPath(self.__fileName) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
118 | self.__downloadItem.accept() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | def __getFileName(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | """ |
2954
bf0215fe12d1
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2523
diff
changeset
|
122 | Private method to get the file name to save to from the user. |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | if self.__gettingFileName: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
127 | if qVersion() >= "5.7.0": |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
128 | savePage = self.__downloadItem.savePageFormat() != \ |
5253
57276f763bf6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5194
diff
changeset
|
129 | QWebEngineDownloadItem.UnknownSaveFormat |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
130 | else: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
131 | savePage = self.__downloadItem.path().lower().endswith( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
132 | (".mhtml", ".mht")) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
133 | |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
134 | documentLocation = QStandardPaths.writableLocation( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
135 | QStandardPaths.DocumentsLocation) |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
136 | downloadDirectory = WebBrowserWindow\ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | .downloadManager().downloadDirectory() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
139 | if self.__fileName: |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
140 | fileName = self.__fileName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
141 | originalFileName = self.__originalFileName |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
142 | self.__toDownload = True |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
143 | ask = False |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
144 | else: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
145 | defaultFileName, originalFileName = \ |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
146 | self.__saveFileName( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
147 | documentLocation if savePage else downloadDirectory) |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
148 | fileName = defaultFileName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
149 | self.__originalFileName = originalFileName |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
150 | ask = True |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | self.__autoOpen = False |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
152 | |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
153 | if not savePage: |
5033
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
154 | from .DownloadAskActionDialog import DownloadAskActionDialog |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
155 | url = self.__downloadItem.url() |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
156 | mimetype = Utilities.MimeTypes.mimeType(originalFileName) |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
157 | dlg = DownloadAskActionDialog( |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
158 | QFileInfo(originalFileName).fileName(), |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
159 | mimetype, |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
160 | "{0}://{1}".format(url.scheme(), url.authority()), |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
161 | self) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | |
5033
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
163 | if dlg.exec_() == QDialog.Rejected or dlg.getAction() == "cancel": |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
164 | self.progressBar.setVisible(False) |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
165 | self.on_stopButton_clicked() |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
166 | self.filenameLabel.setText( |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
167 | self.tr("Download canceled: {0}").format( |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
168 | QFileInfo(defaultFileName).fileName())) |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
169 | self.__canceledFileSelect = True |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
170 | return |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
171 | |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
172 | if dlg.getAction() == "scan": |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
173 | self.__mainWindow.requestVirusTotalScan(url) |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
174 | |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
175 | self.progressBar.setVisible(False) |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
176 | self.on_stopButton_clicked() |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
177 | self.filenameLabel.setText( |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
178 | self.tr("VirusTotal scan scheduled: {0}").format( |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
179 | QFileInfo(defaultFileName).fileName())) |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
180 | self.__canceledFileSelect = True |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
181 | return |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | |
5033
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
183 | self.__autoOpen = dlg.getAction() == "open" |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
184 | |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
185 | tempLocation = QStandardPaths.writableLocation( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
186 | QStandardPaths.TempLocation) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
187 | fileName = tempLocation + '/' + \ |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
188 | QFileInfo(fileName).completeBaseName() |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
189 | |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
190 | if ask and not self.__autoOpen: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
191 | self.__gettingFileName = True |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
192 | fileName = E5FileDialog.getSaveFileName( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
193 | None, |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
194 | self.tr("Save File"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
195 | defaultFileName, |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
196 | "") |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
197 | self.__gettingFileName = False |
5033
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
198 | else: |
d1c2651060ec
Added the 'Save as' functionality to the new web browser (for Qt 5.7+)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
199 | self.__autoOpen = False |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
200 | |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
201 | filterList = [ |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
202 | self.tr("Web Archive (*.mhtml *.mht)"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
203 | self.tr("HTML File (*.html *.htm)"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
204 | self.tr("HTML File with all resources (*.html *.htm)"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
205 | ] |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
206 | extensionsList = [ |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
207 | # tuple of extensions for *nix and Windows |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
208 | # keep in sync with filters list |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
209 | (".mhtml", ".mht"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
210 | (".html", ".htm"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
211 | (".html", ".htm"), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
212 | ] |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | self.__gettingFileName = True |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
214 | fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | None, |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
216 | self.tr("Save Web Page"), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | defaultFileName, |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
218 | ";;".join(filterList), |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
219 | None) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | self.__gettingFileName = False |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
221 | if fileName: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
222 | index = filterList.index(selectedFilter) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
223 | if index == 0: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
224 | self.__downloadItem.setSavePageFormat( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
225 | QWebEngineDownloadItem.MimeHtmlSaveFormat) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
226 | elif index == 1: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
227 | self.__downloadItem.setSavePageFormat( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
228 | QWebEngineDownloadItem.SingleHtmlSaveFormat) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
229 | else: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
230 | self.__downloadItem.setSavePageFormat( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
231 | QWebEngineDownloadItem.CompleteHtmlSaveFormat) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
232 | extension = os.path.splitext(fileName)[1] |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
233 | if not extension: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
234 | # add the platform specific default extension |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
235 | if Globals.isWindowsPlatform(): |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
236 | extensionsIndex = 1 |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
237 | else: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
238 | extensionsIndex = 0 |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
239 | extensions = extensionsList[index] |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
240 | fileName += extensions[extensionsIndex] |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
241 | |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
242 | if not fileName: |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
243 | self.progressBar.setVisible(False) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
244 | self.on_stopButton_clicked() |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
245 | self.filenameLabel.setText( |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
246 | self.tr("Download canceled: {0}") |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
247 | .format(QFileInfo(defaultFileName).fileName())) |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
248 | self.__canceledFileSelect = True |
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
249 | return |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
250 | |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
251 | fileInfo = QFileInfo(fileName) |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
252 | WebBrowserWindow.downloadManager()\ |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
253 | .setDownloadDirectory(fileInfo.absoluteDir().absolutePath()) |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
254 | self.filenameLabel.setText(fileInfo.fileName()) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
256 | self.__fileName = fileName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | # check file path for saving |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
259 | saveDirPath = QFileInfo(self.__fileName).dir() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | if not saveDirPath.exists(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | if not saveDirPath.mkpath(saveDirPath.absolutePath()): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | self.on_stopButton_clicked() |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
264 | self.infoLabel.setText(self.tr( |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
265 | "Download directory ({0}) couldn't be created.") |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | .format(saveDirPath.absolutePath())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
269 | self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | def __saveFileName(self, directory): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | Private method to calculate a name for the file to download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | @param directory name of the directory to store the file into (string) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
276 | @return proposed filename and original filename (string, string) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | """ |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
278 | path = self.__downloadItem.path() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | info = QFileInfo(path) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | baseName = info.completeBaseName() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | endName = info.suffix() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
283 | origName = baseName |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
284 | if endName: |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
285 | origName += '.' + endName |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
286 | |
5194
4750c83cc718
Added an 'unselect' alternative for Qt < 5.7.0 to the new web browser and added possibility to save the current page in various formats.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5033
diff
changeset
|
287 | name = os.path.join(directory, baseName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | if endName: |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
289 | name += '.' + endName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
290 | return name, origName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | |
867
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
292 | def __open(self): |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
293 | """ |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
294 | Private slot to open the downloaded file. |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
295 | """ |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
296 | info = QFileInfo(self.__fileName) |
867
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
297 | url = QUrl.fromLocalFile(info.absoluteFilePath()) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
298 | QDesktopServices.openUrl(url) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
299 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | def on_stopButton_clicked(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | Private slot to stop the download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | """ |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
305 | self.cancelDownload() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
306 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
307 | def cancelDownload(self): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
308 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
309 | Public slot to stop the download. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
310 | """ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | self.setUpdatesEnabled(False) |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
312 | self.stopButton.setEnabled(False) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
313 | self.stopButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | self.openButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | self.openButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | self.setUpdatesEnabled(True) |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
317 | self.__state = DownloadItem.DownloadCancelled |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
318 | self.__downloadItem.cancel() |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
319 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | def on_openButton_clicked(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | Private slot to open the downloaded file. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | """ |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
326 | self.openFile() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
327 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
328 | def openFile(self): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
329 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
330 | Public slot to open the downloaded file. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
331 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
332 | info = QFileInfo(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | url = QUrl.fromLocalFile(info.absoluteFilePath()) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | QDesktopServices.openUrl(url) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
336 | def openFolder(self): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
337 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
338 | Public slot to open the folder containing the downloaded file. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
339 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
340 | info = QFileInfo(self.__fileName) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
341 | url = QUrl.fromLocalFile(info.absolutePath()) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
342 | QDesktopServices.openUrl(url) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
343 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | def __downloadProgress(self, bytesReceived, bytesTotal): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | Private method to show the download progress. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | @param bytesReceived number of bytes received (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | @param bytesTotal number of total bytes (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | self.__bytesReceived = bytesReceived |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
352 | self.__bytesTotal = bytesTotal |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | currentValue = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | totalValue = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | if bytesTotal > 0: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | currentValue = bytesReceived * 100 / bytesTotal |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | totalValue = 100 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | self.progressBar.setValue(currentValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | self.progressBar.setMaximum(totalValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | self.progress.emit(currentValue, totalValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | self.__updateInfoLabel() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | def bytesTotal(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | Public method to get the total number of bytes of the download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | @return total number of bytes (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | """ |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
370 | if self.__bytesTotal == -1: |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
371 | self.__bytesTotal = self.__downloadItem.totalBytes() |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
372 | return self.__bytesTotal |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | def bytesReceived(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | Public method to get the number of bytes received. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | @return number of bytes received (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | return self.__bytesReceived |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | def remainingTime(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | Public method to get an estimation for the remaining time. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | @return estimation for the remaining time (float) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | if not self.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | return -1.0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
391 | if self.bytesTotal() == -1: |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
392 | return -1.0 |
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
393 | |
4443
f7f61a66dc38
A little fix in the download item for a situation causing a division by zero.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4326
diff
changeset
|
394 | cSpeed = self.currentSpeed() |
f7f61a66dc38
A little fix in the download item for a situation causing a division by zero.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4326
diff
changeset
|
395 | if cSpeed != 0: |
f7f61a66dc38
A little fix in the download item for a situation causing a division by zero.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4326
diff
changeset
|
396 | timeRemaining = (self.bytesTotal() - self.bytesReceived()) / cSpeed |
f7f61a66dc38
A little fix in the download item for a situation causing a division by zero.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4326
diff
changeset
|
397 | else: |
f7f61a66dc38
A little fix in the download item for a situation causing a division by zero.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4326
diff
changeset
|
398 | timeRemaining = 1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | # ETA should never be 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | if timeRemaining == 0: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | timeRemaining = 1 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | return timeRemaining |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | def currentSpeed(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | Public method to get an estimation for the download speed. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | @return estimation for the download speed (float) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | if not self.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | return -1.0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | return self.__bytesReceived * 1000.0 / self.__downloadTime.elapsed() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | def __updateInfoLabel(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | Private method to update the info label. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | """ |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
421 | bytesTotal = self.bytesTotal() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | running = not self.downloadedSuccessfully() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | speed = self.currentSpeed() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | timeRemaining = self.remainingTime() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | info = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | if running: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | remaining = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
431 | if bytesTotal > 0: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | remaining = timeString(timeRemaining) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
434 | info = self.tr("{0} of {1} ({2}/sec)\n{3}")\ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | .format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
436 | dataString(self.__bytesReceived), |
4830
f609a22f43bd
Fixed a few code style issues detected by the updated pep8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4771
diff
changeset
|
437 | bytesTotal == -1 and self.tr("?") or |
f609a22f43bd
Fixed a few code style issues detected by the updated pep8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4771
diff
changeset
|
438 | dataString(bytesTotal), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
439 | dataString(int(speed)), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | remaining) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | else: |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
442 | if self.__bytesReceived == bytesTotal or bytesTotal == -1: |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
443 | info = self.tr("{0} downloaded")\ |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
444 | .format(dataString(self.__output.size())) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
446 | info = self.tr("{0} of {1} - Stopped")\ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
447 | .format(dataString(self.__bytesReceived), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | dataString(bytesTotal)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | self.infoLabel.setText(info) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | def downloading(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | Public method to determine, if a download is in progress. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | @return flag indicating a download is in progress (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | """ |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
457 | return self.__state == DownloadItem.Downloading |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | def downloadedSuccessfully(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | Public method to check for a successful download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | @return flag indicating a successful download (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
464 | """ |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
465 | return self.__state == DownloadItem.DownloadSuccessful |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
467 | def downloadCanceled(self): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
468 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
469 | Public method to check, if the download was cancelled. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
470 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
471 | @return flag indicating a canceled download (boolean) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
472 | """ |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
473 | return self.__state == DownloadItem.DownloadCancelled |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
474 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | def __finished(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | Private slot to handle the download finished. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | self.__finishedDownloading = True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | |
4917
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4838
diff
changeset
|
481 | noError = (self.__downloadItem.state() == |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
482 | QWebEngineDownloadItem.DownloadCompleted) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
483 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | self.progressBar.setVisible(False) |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
485 | self.stopButton.setEnabled(False) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
486 | self.stopButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | self.openButton.setEnabled(noError) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | self.openButton.setVisible(noError) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | self.__updateInfoLabel() |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
490 | self.__state = DownloadItem.DownloadSuccessful |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | self.statusChanged.emit() |
757
d3daf1d8f058
Fixed the handling of 'javascript' schemes in the web browser and enhanced the download manager a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
492 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | if self.__autoOpen: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | self.__open() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | def canceledFileSelect(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | Public method to check, if the user canceled the file selection. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | @return flag indicating cancellation (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | return self.__canceledFileSelect |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | def setIcon(self, icon): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | Public method to set the download icon. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | @param icon reference to the icon to be set (QIcon) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | self.fileIcon.setPixmap(icon.pixmap(48, 48)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | def fileName(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | Public method to get the name of the output file. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
517 | @return name of the output file (string) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
519 | return self.__fileName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | def absoluteFilePath(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | Public method to get the absolute path of the output file. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | @return absolute path of the output file (string) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
527 | return QFileInfo(self.__fileName).absoluteFilePath() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | def getData(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | Public method to get the relevant download data. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
533 | @return tuple of URL, save location, flag and the |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
534 | URL of the related web page (QUrl, string, boolean,QUrl) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
536 | return (self.__url, QFileInfo(self.__fileName).filePath(), |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
537 | self.downloadedSuccessfully(), self.__pageUrl) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | def setData(self, data): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | Public method to set the relevant download data. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
543 | @param data tuple of URL, save location, flag and the |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
544 | URL of the related web page (QUrl, string, boolean, QUrl) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | self.__url = data[0] |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
547 | self.__fileName = data[1] |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
548 | self.__pageUrl = data[3] |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
550 | self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
551 | self.infoLabel.setText(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | self.stopButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | self.stopButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | self.openButton.setEnabled(data[2]) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | self.openButton.setVisible(data[2]) |
2055
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
557 | if data[2]: |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
558 | self.__state = DownloadItem.DownloadSuccessful |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
559 | else: |
9165261f3e06
Some optimisations for DownloadItem and disabled the stop and pause buttons for FTP downloads.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
560 | self.__state = DownloadItem.DownloadCancelled |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | def getInfoData(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | Public method to get the text of the info label. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | @return text of the info label (string) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | return self.infoLabel.text() |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
570 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
571 | def getPageUrl(self): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
572 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
573 | Public method to get the URL of the download page. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
574 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
575 | @return URL of the download page (QUrl) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
576 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
577 | return self.__pageUrl |