Sun, 19 Jun 2011 19:36:27 +0200
Changed the code to use super() to access the superclass.
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 | |
791
9ec2ac20e54e
Updated copyright notice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
757
diff
changeset
|
3 | # Copyright (c) 2010 - 2011 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 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt4.QtCore import pyqtSlot, pyqtSignal, Qt, QTime, QFile, QFileInfo, QUrl, \ |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
11 | QIODevice, QCryptographicHash |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
12 | from PyQt4.QtGui import QWidget, QPalette, QStyle, QDesktopServices, QDialog |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
13 | from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
15 | from E5Gui import E5FileDialog |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .Ui_DownloadItem import Ui_DownloadItem |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import Helpviewer.HelpWindow |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | from .DownloadUtilities import timeString, dataString |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
22 | from .DownloadAskActionDialog import DownloadAskActionDialog |
668
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 | import UI.PixmapCache |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | import Preferences |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
27 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | class DownloadItem(QWidget, Ui_DownloadItem): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | 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
|
31 | |
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
|
32 | @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
|
33 | @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
|
34 | @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
|
35 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | 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
|
37 | downloadFinished = pyqtSignal() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | progress = pyqtSignal(int, int) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
40 | def __init__(self, reply=None, requestFilename=False, webPage=None, |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
41 | download=False, parent=None, mainWindow=None): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | Constructor |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
45 | @keyparam reply reference to the network reply object (QNetworkReply) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
46 | @keyparam requestFilename flag indicating to ask the user for a filename (boolean) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
47 | @keyparam webPage reference to the web page object the download originated |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | from (QWebPage) |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
49 | @keyparam download flag indicating a download operation (boolean) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
50 | @keyparam parent reference to the parent widget (QWidget) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
51 | @keyparam mainWindow reference to the main window (HelpWindow) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
53 | super().__init__(parent) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.setupUi(self) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | p = self.infoLabel.palette() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | p.setColor(QPalette.Text, Qt.darkGray) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.infoLabel.setPalette(p) |
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 | self.progressBar.setMaximum(0) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.tryAgainButton.setIcon(UI.PixmapCache.getIcon("restart.png")) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.tryAgainButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.tryAgainButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | self.stopButton.setIcon(UI.PixmapCache.getIcon("stopLoading.png")) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
66 | self.pauseButton.setIcon(UI.PixmapCache.getIcon("pause.png")) |
668
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) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | 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
|
72 | 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
|
73 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
74 | self.__mainWindow = mainWindow |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.__reply = reply |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | self.__requestFilename = requestFilename |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.__page = webPage |
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
|
78 | self.__pageUrl = webPage and webPage.mainFrame().url() or QUrl() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.__toDownload = download |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | 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
|
81 | self.__bytesTotal = -1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.__downloadTime = QTime() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.__output = QFile() |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
84 | self.__fileName = "" |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
85 | self.__originalFileName = "" |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | self.__startedSaving = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | self.__finishedDownloading = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | self.__gettingFileName = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__canceledFileSelect = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | self.__autoOpen = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
92 | self.__sha1Hash = QCryptographicHash(QCryptographicHash.Sha1) |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
93 | self.__md5Hash = QCryptographicHash(QCryptographicHash.Md5) |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
94 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | if not requestFilename: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.__requestFilename = Preferences.getUI("RequestDownloadFilename") |
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.__initialize() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
100 | def __initialize(self, tryAgain=False): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | Private method to (re)initialize the widget. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | @param tryAgain flag indicating a retry (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | if self.__reply is None: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | self.__startedSaving = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | 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
|
111 | 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
|
112 | self.__bytesTotal = -1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
114 | self.__sha1Hash.reset() |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
115 | self.__md5Hash.reset() |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
116 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
117 | # start timer for the download estimation |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
118 | self.__downloadTime.start() |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
119 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | # attach to the reply object |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.__url = self.__reply.url() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | self.__reply.setParent(self) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
123 | self.__reply.setReadBufferSize(0) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | self.__reply.readyRead[()].connect(self.__readyRead) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | self.__reply.error.connect(self.__networkError) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.__reply.downloadProgress.connect(self.__downloadProgress) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | self.__reply.metaDataChanged.connect(self.__metaDataChanged) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | self.__reply.finished[()].connect(self.__finished) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | # reset info |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | self.infoLabel.clear() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | self.progressBar.setValue(0) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | self.__getFileName() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | if self.__reply.error() != QNetworkReply.NoError: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | self.__networkError() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self.__finished() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | def __getFileName(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | Private method to get the filename to save to from the user. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | @return flag indicating success (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | if self.__gettingFileName: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | downloadDirectory = Helpviewer.HelpWindow.HelpWindow\ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | .downloadManager().downloadDirectory() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
151 | if self.__fileName: |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
152 | fileName = self.__fileName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
153 | originalFileName = self.__originalFileName |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
154 | self.__toDownload = True |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
155 | ask = False |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
156 | else: |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
157 | defaultFileName, originalFileName = self.__saveFileName(downloadDirectory) |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
158 | fileName = defaultFileName |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
159 | self.__originalFileName = originalFileName |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
160 | ask = True |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | self.__autoOpen = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | if not self.__toDownload: |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
163 | url = self.__reply.url() |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
164 | dlg = DownloadAskActionDialog( |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
165 | QFileInfo(originalFileName).fileName(), |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
166 | self.__reply.header(QNetworkRequest.ContentTypeHeader), |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
167 | "{0}://{1}".format(url.scheme(), url.authority()), |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
168 | self) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
169 | if dlg.exec_() == QDialog.Rejected or dlg.getAction() == "cancel": |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | self.__reply.close() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | self.on_stopButton_clicked() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | self.filenameLabel.setText(self.trUtf8("Download canceled: {0}").format( |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | QFileInfo(defaultFileName).fileName())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | self.__canceledFileSelect = True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
978
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
178 | if dlg.getAction() == "scan": |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
179 | self.__mainWindow.requestVirusTotalScan(url) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
180 | |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
181 | self.progressBar.setVisible(False) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
182 | self.__reply.close() |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
183 | self.on_stopButton_clicked() |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
184 | self.filenameLabel.setText( |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
185 | self.trUtf8("VirusTotal scan scheduled: {0}").format( |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
186 | QFileInfo(defaultFileName).fileName())) |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
187 | self.__canceledFileSelect = True |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
188 | return |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
189 | |
11f8adbcac97
Added an interface to VirusTotal to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
190 | self.__autoOpen = dlg.getAction() == "open" |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | fileName = QDesktopServices.storageLocation(QDesktopServices.TempLocation) + \ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | '/' + QFileInfo(fileName).completeBaseName() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
194 | if ask and not self.__autoOpen and self.__requestFilename: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | self.__gettingFileName = True |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
196 | fileName = E5FileDialog.getSaveFileName( |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | None, |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | self.trUtf8("Save File"), |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | defaultFileName, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
200 | "") |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | self.__gettingFileName = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | if not fileName: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | self.__reply.close() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | self.on_stopButton_clicked() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | self.filenameLabel.setText(self.trUtf8("Download canceled: {0}")\ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | .format(QFileInfo(defaultFileName).fileName())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | self.__canceledFileSelect = True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | return |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
210 | |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
211 | fileInfo = QFileInfo(fileName) |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
212 | Helpviewer.HelpWindow.HelpWindow.downloadManager().setDownloadDirectory( |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
213 | fileInfo.absoluteDir().absolutePath()) |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
214 | self.filenameLabel.setText(fileInfo.fileName()) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
216 | self.__output.setFileName(fileName + ".part") |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
217 | self.__fileName = fileName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | # check file path for saving |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
220 | saveDirPath = QFileInfo(self.__fileName).dir() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | if not saveDirPath.exists(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | if not saveDirPath.mkpath(saveDirPath.absolutePath()): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | self.on_stopButton_clicked() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | self.infoLabel.setText( |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | self.trUtf8("Download directory ({0}) couldn't be created.")\ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | .format(saveDirPath.absolutePath())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
230 | 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
|
231 | if self.__requestFilename: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | self.__readyRead() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | def __saveFileName(self, directory): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | 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
|
237 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | @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
|
239 | @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
|
240 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | path = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | if self.__reply.hasRawHeader("Content-Disposition"): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | header = bytes(self.__reply.rawHeader("Content-Disposition")).decode() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | if header: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | pos = header.find("filename=") |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | if pos != -1: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | path = header[pos + 9:] |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | if path.startswith('"') and path.endswith('"'): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | path = path[1:-1] |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | if not path: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | path = self.__url.path() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | info = QFileInfo(path) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | baseName = info.completeBaseName() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | endName = info.suffix() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | if not baseName: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | baseName = "unnamed_download" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
260 | origName = baseName |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
261 | if endName: |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
262 | origName += '.' + endName |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
263 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | name = directory + baseName |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | if endName: |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
266 | name += '.' + endName |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
267 | if not self.__requestFilename: |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
268 | # do not overwrite, if the user is not being asked |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
269 | i = 1 |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
270 | while QFile.exists(name): |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
271 | # file exists already, don't overwrite |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
272 | name = directory + baseName + ('-{0:d}'.format(i)) |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
273 | if endName: |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
274 | name += '.' + endName |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
275 | i += 1 |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
276 | return name, origName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | |
867
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
278 | def __open(self): |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
279 | """ |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
280 | 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
|
281 | """ |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
282 | info = QFileInfo(self.__output) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
283 | url = QUrl.fromLocalFile(info.absoluteFilePath()) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
284 | QDesktopServices.openUrl(url) |
d6cafe8ad013
Fixed the forgotten __open() method in DownloadItem.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
285 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | def on_tryAgainButton_clicked(self): |
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 | Private slot to retry the download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | """ |
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
|
291 | self.retry() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
292 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
293 | def retry(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
|
294 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
295 | Public slot to retry 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
|
296 | """ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | if not self.tryAgainButton.isEnabled(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | self.tryAgainButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | self.tryAgainButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | self.openButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | self.openButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | self.stopButton.setEnabled(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | self.stopButton.setVisible(True) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
306 | self.pauseButton.setEnabled(True) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
307 | self.pauseButton.setVisible(True) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | self.progressBar.setVisible(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | if self.__page: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | nam = self.__page.networkAccessManager() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | else: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | reply = nam.get(QNetworkRequest(self.__url)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | if self.__output.exists(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | self.__output.remove() |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
317 | self.__output = QFile() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | self.__reply = reply |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
319 | self.__initialize(tryAgain=True) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | self.statusChanged.emit() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
322 | @pyqtSlot(bool) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
323 | def on_pauseButton_clicked(self, checked): |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
324 | """ |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
325 | Private slot to pause the download. |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
326 | |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
327 | @param checked flag indicating the state of the button (boolean) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
328 | """ |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
329 | if checked: |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
330 | self.__reply.readyRead[()].disconnect(self.__readyRead) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
331 | self.__reply.setReadBufferSize(16 * 1024) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
332 | else: |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
333 | self.__reply.readyRead[()].connect(self.__readyRead) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
334 | self.__reply.setReadBufferSize(0) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
335 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | def on_stopButton_clicked(self): |
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 | Private slot to stop the download. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | """ |
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
|
341 | 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
|
342 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
343 | 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
|
344 | """ |
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 | 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
|
346 | """ |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | self.setUpdatesEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | self.stopButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | self.stopButton.setVisible(False) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
350 | self.pauseButton.setEnabled(False) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
351 | self.pauseButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | self.tryAgainButton.setEnabled(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | self.tryAgainButton.setVisible(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | self.openButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | self.openButton.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | self.setUpdatesEnabled(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | self.__reply.abort() |
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
|
358 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | def on_openButton_clicked(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | 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
|
364 | """ |
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
|
365 | 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
|
366 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
367 | 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
|
368 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
369 | 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
|
370 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
371 | info = QFileInfo(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | url = QUrl.fromLocalFile(info.absoluteFilePath()) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | QDesktopServices.openUrl(url) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | |
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
|
375 | 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
|
376 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
377 | 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
|
378 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
379 | 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
|
380 | 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
|
381 | 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
|
382 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | def __readyRead(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | Private slot to read the available data. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | if self.__requestFilename and not self.__output.fileName(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | if not self.__output.isOpen(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | # in case someone else has already put a file there |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | if not self.__requestFilename: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | self.__getFileName() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | if not self.__output.open(QIODevice.WriteOnly): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | self.infoLabel.setText(self.trUtf8("Error opening save file: {0}")\ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | .format(self.__output.errorString())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | self.on_stopButton_clicked() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | self.statusChanged.emit() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | self.statusChanged.emit() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
402 | buffer = self.__reply.readAll() |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
403 | self.__sha1Hash.addData(buffer) |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
404 | self.__md5Hash.addData(buffer) |
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
405 | bytesWritten = self.__output.write(buffer) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | if bytesWritten == -1: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | self.infoLabel.setText(self.trUtf8("Error saving: {0}")\ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | .format(self.__output.errorString())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | self.on_stopButton_clicked() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | else: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | self.__startedSaving = True |
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
|
412 | if self.__finishedDownloading: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | self.__finished() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | def __networkError(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | Private slot to handle a network error. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | self.infoLabel.setText(self.trUtf8("Network Error: {0}")\ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | .format(self.__reply.errorString())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | self.tryAgainButton.setEnabled(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | self.tryAgainButton.setVisible(True) |
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
|
423 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | def __metaDataChanged(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | Private slot to handle a change of the meta data. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | locationHeader = self.__reply.header(QNetworkRequest.LocationHeader) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | if locationHeader and locationHeader.isValid(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | self.__url = QUrl(locationHeader) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | self.__reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get( |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | QNetworkRequest(self.__url)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | self.initialize() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | def __downloadProgress(self, bytesReceived, bytesTotal): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | 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
|
439 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | @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
|
441 | @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
|
442 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | 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
|
444 | self.__bytesTotal = bytesTotal |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | currentValue = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | totalValue = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | if bytesTotal > 0: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | currentValue = bytesReceived * 100 / bytesTotal |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | totalValue = 100 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | self.progressBar.setValue(currentValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | self.progressBar.setMaximum(totalValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | self.progress.emit(currentValue, totalValue) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | self.__updateInfoLabel() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | def bytesTotal(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | 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
|
459 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | @return total number of bytes (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | """ |
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
|
462 | if self.__bytesTotal == -1: |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
463 | self.__bytesTotal = self.__reply.header(QNetworkRequest.ContentLengthHeader) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
464 | if self.__bytesTotal is None: |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
465 | self.__bytesTotal = -1 |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
466 | return self.__bytesTotal |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | def bytesReceived(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | 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
|
471 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | @return number of bytes received (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | return self.__bytesReceived |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | def remainingTime(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | 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
|
479 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | @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
|
481 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | if not self.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
483 | return -1.0 |
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 | if self.bytesTotal() == -1: |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
486 | return -1.0 |
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
487 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | timeRemaining = (self.bytesTotal() - self.bytesReceived()) / self.currentSpeed() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | # ETA should never be 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | if timeRemaining == 0: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | timeRemaining = 1 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | return timeRemaining |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | def currentSpeed(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | 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
|
499 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | @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
|
501 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | if not self.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | return -1.0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | 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
|
506 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | def __updateInfoLabel(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | 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
|
510 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | if self.__reply.error() != QNetworkReply.NoError: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
670
diff
changeset
|
514 | bytesTotal = self.bytesTotal() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | running = not self.downloadedSuccessfully() |
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 | speed = self.currentSpeed() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | timeRemaining = self.remainingTime() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | info = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | if running: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | remaining = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | |
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
|
524 | if bytesTotal > 0: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | remaining = timeString(timeRemaining) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
527 | info = self.trUtf8("{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
|
528 | .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
|
529 | dataString(self.__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
|
530 | bytesTotal == -1 and self.trUtf8("?") \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
531 | or dataString(bytesTotal), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
532 | dataString(int(speed)), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | remaining) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | 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
|
535 | if self.__bytesReceived == bytesTotal or bytesTotal == -1: |
1101
43da69edffc4
Added code to calculate and display a SHA1 and a MD5 hash for each downloaded item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1094
diff
changeset
|
536 | info = self.trUtf8("{0} downloaded\nSHA1: {1}\nMD5: {2}")\ |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1101
diff
changeset
|
537 | .format(dataString(self.__output.size()), |
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1101
diff
changeset
|
538 | str(self.__sha1Hash.result().toHex(), encoding="ascii"), |
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1101
diff
changeset
|
539 | str(self.__md5Hash.result().toHex(), encoding="ascii")) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | else: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | info = self.trUtf8("{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
|
542 | .format(dataString(self.__bytesReceived), |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | dataString(bytesTotal)) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | self.infoLabel.setText(info) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | def downloading(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | 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
|
549 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | @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
|
551 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | return self.stopButton.isEnabled() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | def downloadedSuccessfully(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | 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
|
557 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | @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
|
559 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | return self.stopButton.isHidden() and self.tryAgainButton.isHidden() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | |
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
|
562 | 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
|
563 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
564 | 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
|
565 | |
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 | @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
|
567 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
568 | return self.tryAgainButton.isEnabled() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
569 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | def __finished(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | 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
|
573 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | self.__finishedDownloading = True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | if not self.__startedSaving: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | noError = self.__reply.error() == QNetworkReply.NoError |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | self.stopButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | self.stopButton.setVisible(False) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
583 | self.pauseButton.setEnabled(False) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
584 | self.pauseButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | self.openButton.setEnabled(noError) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | self.openButton.setVisible(noError) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | self.__output.close() |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
588 | if QFile.exists(self.__fileName): |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
589 | QFile.remove(self.__fileName) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
590 | self.__output.rename(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | self.__updateInfoLabel() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | 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
|
593 | self.downloadFinished.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | if self.__autoOpen: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | self.__open() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | def canceledFileSelect(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | 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
|
601 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | @return flag indicating cancellation (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | return self.__canceledFileSelect |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | def setIcon(self, icon): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | 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
|
609 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | @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
|
611 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | 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
|
613 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | def fileName(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
616 | 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
|
617 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | @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
|
619 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
620 | return self.__fileName |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
622 | def absoluteFilePath(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
623 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
624 | 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
|
625 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
626 | @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
|
627 | """ |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
628 | return QFileInfo(self.__fileName).absoluteFilePath() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
630 | def getData(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
631 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
632 | 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
|
633 | |
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
|
634 | @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
|
635 | 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
|
636 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
637 | 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
|
638 | self.downloadedSuccessfully(), self.__pageUrl) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | def setData(self, data): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | 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
|
643 | |
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
|
644 | @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
|
645 | 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
|
646 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | self.__url = data[0] |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
648 | 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
|
649 | self.__pageUrl = data[3] |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | |
670
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
651 | self.filenameLabel.setText(QFileInfo(self.__fileName).fileName()) |
bb833c4bcf28
Some fixes to the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
652 | self.infoLabel.setText(self.__fileName) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | self.stopButton.setEnabled(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | self.stopButton.setVisible(False) |
1094
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
656 | self.pauseButton.setEnabled(False) |
743900906d8e
Added a puse button to the web browser download.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
978
diff
changeset
|
657 | self.pauseButton.setVisible(False) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | self.openButton.setEnabled(data[2]) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | self.openButton.setVisible(data[2]) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | self.tryAgainButton.setEnabled(not data[2]) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | self.tryAgainButton.setVisible(not data[2]) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | self.progressBar.setVisible(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | def getInfoData(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | 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
|
667 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
668 | @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
|
669 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | 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
|
671 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
672 | 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
|
673 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
674 | 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
|
675 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
676 | @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
|
677 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
678 | return self.__pageUrl |