Fri, 03 Mar 2017 18:34:21 +0100
Merged with default branch.
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 | |
5389
9b1c800daff3
Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5253
diff
changeset
|
3 | # Copyright (c) 2010 - 2017 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) |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
113 | if self.__downloadItem.state() == \ |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
114 | QWebEngineDownloadItem.DownloadRequested: |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
115 | self.__getFileName() |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
116 | if not self.__fileName: |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
117 | self.__downloadItem.cancel() |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
118 | else: |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
119 | self.__downloadItem.setPath(self.__fileName) |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
120 | self.__downloadItem.accept() |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
121 | else: |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
122 | fileName = self.__downloadItem.path() |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
123 | self.__setFileName(fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | def __getFileName(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
2954
bf0215fe12d1
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2523
diff
changeset
|
127 | 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
|
128 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | if self.__gettingFileName: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
132 | if qVersion() >= "5.8.0": |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
133 | savePage = self.__downloadItem.type() == \ |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
134 | QWebEngineDownloadItem.SavePage |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
135 | elif qVersion() >= "5.7.0": |
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
|
136 | savePage = self.__downloadItem.savePageFormat() != \ |
5253
57276f763bf6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5194
diff
changeset
|
137 | 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
|
138 | 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
|
139 | 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
|
140 | (".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
|
141 | |
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
|
142 | 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
|
143 | QStandardPaths.DocumentsLocation) |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
144 | downloadDirectory = WebBrowserWindow\ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | .downloadManager().downloadDirectory() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
147 | if self.__fileName: |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
148 | fileName = self.__fileName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
149 | originalFileName = self.__originalFileName |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
150 | self.__toDownload = True |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
151 | ask = False |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
152 | else: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
153 | 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
|
154 | 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
|
155 | documentLocation if savePage else downloadDirectory) |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
156 | fileName = defaultFileName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
157 | self.__originalFileName = originalFileName |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
158 | ask = True |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | self.__autoOpen = False |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
160 | |
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
|
161 | 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
|
162 | 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
|
163 | 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
|
164 | 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
|
165 | 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
|
166 | 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
|
167 | 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
|
168 | "{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
|
169 | self) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | |
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
|
171 | 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
|
172 | 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
|
173 | 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
|
174 | 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
|
175 | 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
|
176 | 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
|
177 | 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
|
178 | 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
|
179 | |
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 | 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
|
181 | 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
|
182 | |
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.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
|
184 | 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
|
185 | 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
|
186 | 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
|
187 | 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
|
188 | 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
|
189 | return |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | |
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
|
191 | 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
|
192 | |
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 | 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
|
194 | 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
|
195 | 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
|
196 | 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
|
197 | |
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
|
198 | 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
|
199 | 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
|
200 | 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
|
201 | 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
|
202 | 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
|
203 | 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
|
204 | "") |
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 | 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
|
206 | else: |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
207 | # save page file name and format selection for Qt < 5.8.0 |
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
|
208 | 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
|
209 | |
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 | 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
|
211 | 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
|
212 | 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
|
213 | 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
|
214 | ] |
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
|
215 | 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
|
216 | # 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
|
217 | # 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
|
218 | (".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
|
219 | (".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
|
220 | (".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
|
221 | ] |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | 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
|
223 | fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | 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
|
225 | self.tr("Save Web Page"), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | 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
|
227 | ";;".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
|
228 | None) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | 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
|
230 | 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
|
231 | 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
|
232 | 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
|
233 | 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
|
234 | 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
|
235 | 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
|
236 | 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
|
237 | 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
|
238 | 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
|
239 | 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
|
240 | 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
|
241 | 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
|
242 | 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
|
243 | # 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
|
244 | 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
|
245 | 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
|
246 | 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
|
247 | 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
|
248 | 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
|
249 | 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
|
250 | |
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
|
251 | 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
|
252 | 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
|
253 | 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
|
254 | 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
|
255 | 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
|
256 | .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
|
257 | 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
|
258 | return |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
259 | |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
260 | self.__setFileName(fileName) |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
261 | |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
262 | def __setFileName(self, fileName): |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
263 | """ |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
264 | Private method to set the file name to save the download into. |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
265 | |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
266 | @param fileName name of the file to save into |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
267 | @type str |
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
268 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
269 | fileInfo = QFileInfo(fileName) |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
270 | WebBrowserWindow.downloadManager()\ |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
271 | .setDownloadDirectory(fileInfo.absoluteDir().absolutePath()) |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
272 | self.filenameLabel.setText(fileInfo.fileName()) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
274 | self.__fileName = fileName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | # check file path for saving |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
277 | saveDirPath = QFileInfo(self.__fileName).dir() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | if not saveDirPath.exists(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | if not saveDirPath.mkpath(saveDirPath.absolutePath()): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | 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
|
282 | self.infoLabel.setText(self.tr( |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
283 | "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
|
284 | .format(saveDirPath.absolutePath())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
287 | 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
|
288 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | def __saveFileName(self, directory): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | 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
|
292 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | @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
|
294 | @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
|
295 | """ |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
296 | path = self.__downloadItem.path() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | info = QFileInfo(path) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | baseName = info.completeBaseName() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | endName = info.suffix() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
301 | origName = baseName |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
302 | if endName: |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
303 | origName += '.' + endName |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
304 | |
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
|
305 | 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
|
306 | if endName: |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
307 | name += '.' + endName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
308 | return name, origName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | |
867
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
310 | def __open(self): |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
311 | """ |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
312 | 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
|
313 | """ |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
314 | info = QFileInfo(self.__fileName) |
867
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
315 | url = QUrl.fromLocalFile(info.absoluteFilePath()) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
316 | QDesktopServices.openUrl(url) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
317 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | def on_stopButton_clicked(self): |
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 | Private slot to stop the download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | """ |
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
|
323 | 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
|
324 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
325 | 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
|
326 | """ |
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 | 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
|
328 | """ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | self.setUpdatesEnabled(False) |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
330 | self.stopButton.setEnabled(False) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
331 | self.stopButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | self.openButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | self.openButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | 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
|
335 | self.__state = DownloadItem.DownloadCancelled |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
336 | 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
|
337 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | def on_openButton_clicked(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | 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
|
343 | """ |
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
|
344 | 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
|
345 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
346 | 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
|
347 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
348 | 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
|
349 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
350 | info = QFileInfo(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | url = QUrl.fromLocalFile(info.absoluteFilePath()) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | QDesktopServices.openUrl(url) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | |
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
|
354 | 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
|
355 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
356 | 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
|
357 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
358 | 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
|
359 | 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
|
360 | 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
|
361 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | def __downloadProgress(self, bytesReceived, bytesTotal): |
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 | 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
|
365 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | @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
|
367 | @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
|
368 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | 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
|
370 | self.__bytesTotal = bytesTotal |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | currentValue = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | totalValue = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | if bytesTotal > 0: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | currentValue = bytesReceived * 100 / bytesTotal |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | totalValue = 100 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | self.progressBar.setValue(currentValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | self.progressBar.setMaximum(totalValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | self.progress.emit(currentValue, totalValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | self.__updateInfoLabel() |
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 bytesTotal(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 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
|
385 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | @return total number of bytes (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | """ |
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
|
388 | if self.__bytesTotal == -1: |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
389 | 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
|
390 | return self.__bytesTotal |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | def bytesReceived(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | 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
|
395 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | @return number of bytes received (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | return self.__bytesReceived |
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 | def remainingTime(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | 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
|
403 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | @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
|
405 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | if not self.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | return -1.0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | |
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
|
409 | if self.bytesTotal() == -1: |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
410 | return -1.0 |
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
411 | |
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
|
412 | 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
|
413 | 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
|
414 | 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
|
415 | 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
|
416 | timeRemaining = 1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | # ETA should never be 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | if timeRemaining == 0: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | timeRemaining = 1 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | return timeRemaining |
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 | def currentSpeed(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | 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
|
427 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | @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
|
429 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | if not self.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | return -1.0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | 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
|
434 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | def __updateInfoLabel(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | 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
|
438 | """ |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
439 | bytesTotal = self.bytesTotal() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | running = not self.downloadedSuccessfully() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | speed = self.currentSpeed() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | timeRemaining = self.remainingTime() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | info = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | if running: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | remaining = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | |
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
|
449 | if bytesTotal > 0: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | remaining = timeString(timeRemaining) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
452 | 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
|
453 | .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
|
454 | 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
|
455 | 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
|
456 | 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
|
457 | dataString(int(speed)), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | remaining) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | 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
|
460 | if self.__bytesReceived == bytesTotal or bytesTotal == -1: |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
461 | info = self.tr("{0} downloaded")\ |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
462 | .format(dataString(self.__bytesReceived)) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
464 | 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
|
465 | .format(dataString(self.__bytesReceived), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | dataString(bytesTotal)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | self.infoLabel.setText(info) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | def downloading(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | 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
|
472 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | @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
|
474 | """ |
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
|
475 | return self.__state == DownloadItem.Downloading |
668
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 | def downloadedSuccessfully(self): |
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 | 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
|
480 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | @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
|
482 | """ |
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
|
483 | return self.__state == DownloadItem.DownloadSuccessful |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | |
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
|
485 | 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
|
486 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
487 | 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
|
488 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
489 | @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
|
490 | """ |
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
|
491 | 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
|
492 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | def __finished(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | 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
|
496 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | self.__finishedDownloading = True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | |
4917
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4838
diff
changeset
|
499 | noError = (self.__downloadItem.state() == |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
500 | QWebEngineDownloadItem.DownloadCompleted) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | self.progressBar.setVisible(False) |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
503 | self.stopButton.setEnabled(False) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
504 | self.stopButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | self.openButton.setEnabled(noError) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | self.openButton.setVisible(noError) |
5530
93f95c4b3153
Started upgrading the new web browser to the Qt 5.8 offerings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5526
diff
changeset
|
507 | self.__state = DownloadItem.DownloadSuccessful |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | self.__updateInfoLabel() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | 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
|
510 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | if self.__autoOpen: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | self.__open() |
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 | def canceledFileSelect(self): |
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 | 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
|
518 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | @return flag indicating cancellation (boolean) |
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 | return self.__canceledFileSelect |
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 | def setIcon(self, icon): |
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 | 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
|
526 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | @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
|
528 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | 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
|
530 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | def fileName(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | 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
|
534 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | @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
|
536 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
537 | return self.__fileName |
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 absoluteFilePath(self): |
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 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
|
542 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | @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
|
544 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
545 | return QFileInfo(self.__fileName).absoluteFilePath() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | def getData(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | 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
|
550 | |
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
|
551 | @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
|
552 | 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
|
553 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
554 | 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
|
555 | self.downloadedSuccessfully(), self.__pageUrl) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | def setData(self, data): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | 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
|
560 | |
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
|
561 | @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
|
562 | 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
|
563 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | self.__url = data[0] |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
565 | 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
|
566 | self.__pageUrl = data[3] |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
568 | self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
569 | self.infoLabel.setText(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | self.stopButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | self.stopButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | self.openButton.setEnabled(data[2]) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | 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
|
575 | 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
|
576 | 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
|
577 | 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
|
578 | self.__state = DownloadItem.DownloadCancelled |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | def getInfoData(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | 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
|
584 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | @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
|
586 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | 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
|
588 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
589 | 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
|
590 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
591 | 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
|
592 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
593 | @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
|
594 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
595 | return self.__pageUrl |