Sat, 22 May 2021 19:58:24 +0200
Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
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 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
3 | # Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
4543
2e6a880670e9
Fixed a few code style issues (forgotten future imports, copyrights,...).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
4 | # |
2e6a880670e9
Fixed a few code style issues (forgotten future imports, copyrights,...).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
5 | |
668
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 the download manager class. |
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 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
10 | from PyQt6.QtCore import ( |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
11 | pyqtSlot, pyqtSignal, Qt, QModelIndex, QFileInfo, QUrl, QBasicTimer |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
12 | ) |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
13 | from PyQt6.QtGui import QCursor, QKeySequence, QShortcut |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
14 | from PyQt6.QtWidgets import ( |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
15 | QDialog, QStyle, QFileIconProvider, QMenu, QApplication |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
16 | ) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
8358
144a6b854f70
Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8356
diff
changeset
|
18 | from EricWidgets import EricMessageBox |
144a6b854f70
Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8356
diff
changeset
|
19 | from EricWidgets.EricApplication import ericApp |
668
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 .Ui_DownloadManager import Ui_DownloadManager |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | from .DownloadModel import DownloadModel |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
24 | from .DownloadUtilities import speedString, timeString |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
26 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | from Utilities.AutoSaver import AutoSaver |
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
|
29 | import UI.PixmapCache |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | import Preferences |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
31 | import Globals |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
33 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | class DownloadManager(QDialog, Ui_DownloadManager): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
2954
bf0215fe12d1
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
36 | Class implementing the download manager. |
6149
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6134
diff
changeset
|
37 | |
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6134
diff
changeset
|
38 | @signal downloadsCountChanged() emitted to indicate a change of the |
e611e45a17d6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6134
diff
changeset
|
39 | count of download items |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
41 | RemoveNever = 0 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
42 | RemoveExit = 1 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | RemoveSuccessFullDownload = 2 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
45 | UpdateTimerTimeout = 1000 |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
46 | |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
47 | downloadsCountChanged = pyqtSignal() |
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
48 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
49 | def __init__(self, parent=None): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | Constructor |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | @param parent reference to the parent widget (QWidget) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8217
diff
changeset
|
55 | super().__init__(parent) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.setupUi(self) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
57 | self.setWindowFlags(Qt.WindowType.Window) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
59 | self.__winTaskbarButton = None |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
60 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.__saveTimer = AutoSaver(self, self.save) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.__model = DownloadModel(self) |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
64 | self.__manager = WebBrowserWindow.networkManager() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | self.__iconProvider = None |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | self.__downloads = [] |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | self.__downloadDirectory = "" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.__loaded = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
71 | self.__rowHeightMultiplier = 1.1 |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
72 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | self.setDownloadDirectory(Preferences.getUI("DownloadPath")) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.downloadsView.setShowGrid(False) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | self.downloadsView.verticalHeader().hide() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.downloadsView.horizontalHeader().hide() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | self.downloadsView.setAlternatingRowColors(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.downloadsView.horizontalHeader().setStretchLastSection(True) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | self.downloadsView.setModel(self.__model) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
81 | self.downloadsView.setContextMenuPolicy( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
82 | Qt.ContextMenuPolicy.CustomContextMenu) |
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
|
83 | self.downloadsView.customContextMenuRequested.connect( |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
84 | self.__customContextMenuRequested) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
86 | self.__clearShortcut = QShortcut(QKeySequence("Ctrl+L"), self) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
87 | self.__clearShortcut.activated.connect(self.on_cleanupButton_clicked) |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
88 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__load() |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
90 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
91 | self.__updateTimer = QBasicTimer() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
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
|
93 | def __customContextMenuRequested(self, pos): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
94 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
95 | Private slot to handle the context menu request for the bookmarks tree. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
96 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
97 | @param pos position the context menu was requested (QPoint) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
98 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
99 | menu = QMenu() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
100 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
101 | selectedRowsCount = len( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
102 | self.downloadsView.selectionModel().selectedRows()) |
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
|
103 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
104 | if selectedRowsCount == 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
|
105 | row = self.downloadsView.selectionModel().selectedRows()[0].row() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
106 | itm = self.__downloads[row] |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
107 | if itm.downloadedSuccessfully(): |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
108 | menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
109 | UI.PixmapCache.getIcon("open"), |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
110 | self.tr("Open"), self.__contextMenuOpen) |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
111 | elif itm.downloading(): |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
112 | menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
113 | UI.PixmapCache.getIcon("stopLoading"), |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
114 | self.tr("Cancel"), self.__contextMenuCancel) |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
115 | menu.addSeparator() |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
116 | menu.addAction( |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
117 | self.tr("Open Containing Folder"), |
4917
682750cc7bd5
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4788
diff
changeset
|
118 | self.__contextMenuOpenFolder) |
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
|
119 | menu.addSeparator() |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
120 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
121 | self.tr("Go to Download Page"), |
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
|
122 | self.__contextMenuGotoPage) |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
123 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
124 | self.tr("Copy Download Link"), |
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
|
125 | self.__contextMenuCopyLink) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
126 | menu.addSeparator() |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
127 | menu.addAction(self.tr("Select All"), self.__contextMenuSelectAll) |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
128 | if ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
129 | selectedRowsCount > 1 or |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
130 | (selectedRowsCount == 1 and |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
131 | not self.__downloads[ |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3022
diff
changeset
|
132 | self.downloadsView.selectionModel().selectedRows()[0].row()] |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
133 | .downloading()) |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
134 | ): |
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
|
135 | menu.addSeparator() |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
136 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
137 | self.tr("Remove From List"), |
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
|
138 | self.__contextMenuRemoveSelected) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
139 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
140 | menu.exec(QCursor.pos()) |
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
|
141 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | def shutdown(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | Public method to stop the download manager. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | """ |
6085
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
146 | self.save() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | self.close() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
149 | def activeDownloadsCount(self): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | Public method to get the number of active downloads. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | @return number of active downloads (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | count = 0 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | for download in self.__downloads: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | if download.downloading(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | count += 1 |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | return count |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | def allowQuit(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | Public method to check, if it is ok to quit. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | @return flag indicating allowance to quit (boolean) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | """ |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
168 | if self.activeDownloadsCount() > 0: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
169 | res = EricMessageBox.yesNo( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
170 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
171 | self.tr(""), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
172 | self.tr("""There are %n downloads in progress.\n""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
173 | """Do you want to quit anyway?""", "", |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
174 | self.activeDownloadsCount()), |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
175 | icon=EricMessageBox.Warning) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | if not res: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | self.show() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | return False |
6222
baffb22b4467
DownloadManager: Fixed issues in the Windows related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6221
diff
changeset
|
179 | |
baffb22b4467
DownloadManager: Fixed issues in the Windows related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6221
diff
changeset
|
180 | self.close() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | return True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
183 | def __testWebBrowserView(self, view, url): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
184 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
185 | Private method to test a web browser view against an URL. |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
186 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
187 | @param view reference to the web browser view to be tested |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
188 | @type WebBrowserView |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
189 | @param url URL to test against |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
190 | @type QUrl |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
191 | @return flag indicating, that the view is the one for the URL |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
192 | @rtype bool |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
193 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
194 | if view.tabWidget().count() < 2: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
195 | return False |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
196 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
197 | page = view.page() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
198 | if page.history().count() != 0: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
199 | return False |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
200 | |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
201 | if ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
202 | not page.url().isEmpty() and |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
203 | page.url().host() == url.host() |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
204 | ): |
6735
31e263d49c04
Fixed some code style issues detected by the updated style checker (over-indented lines).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
205 | return True |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
206 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
207 | requestedUrl = page.requestedUrl() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
208 | if requestedUrl.isEmpty(): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
209 | requestedUrl = QUrl(view.tabWidget().urlBarForView(view).text()) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
210 | return requestedUrl.isEmpty() or requestedUrl.host() == url.host() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
211 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
212 | def __closeDownloadTab(self, url): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
213 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
214 | Private method to close an empty tab, that was opened only for loading |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
215 | the download URL. |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
216 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
217 | @param url download URL |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
218 | @type QUrl |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
219 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
220 | if self.__testWebBrowserView( |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
221 | WebBrowserWindow.getWindow().currentBrowser(), url): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
222 | WebBrowserWindow.getWindow().closeCurrentBrowser() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
223 | return |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
224 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
225 | for window in WebBrowserWindow.mainWindows(): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
226 | for browser in window.browsers(): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
227 | if self.__testWebBrowserView(browser, url): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
228 | window.closeBrowser(browser) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
229 | return |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
230 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
231 | def download(self, downloadItem): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | Public method to download a file. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | |
4769
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
235 | @param downloadItem reference to the download object containing the |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
236 | download data. |
2b6f7e026cdc
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4768
diff
changeset
|
237 | @type QWebEngineDownloadItem |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | """ |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
239 | url = downloadItem.url() |
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
240 | if url.isEmpty(): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
243 | self.__closeDownloadTab(url) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
244 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
245 | # Safe Browsing |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
246 | from WebBrowser.SafeBrowsing.SafeBrowsingManager import ( |
6093
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
247 | SafeBrowsingManager |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
248 | ) |
6093
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
249 | if SafeBrowsingManager.isEnabled(): |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
250 | threatLists = ( |
6234
fb1f9e681848
Web Browser NG, Safe Browsing: improved error handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6233
diff
changeset
|
251 | WebBrowserWindow.safeBrowsingManager().lookupUrl(url)[0] |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
252 | ) |
6093
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
253 | if threatLists: |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
254 | threatMessages = ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
255 | WebBrowserWindow.safeBrowsingManager() |
6093
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
256 | .getThreatMessages(threatLists) |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
257 | ) |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
258 | res = EricMessageBox.warning( |
6093
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
259 | WebBrowserWindow.getWindow(), |
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
260 | self.tr("Suspicuous URL detected"), |
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
261 | self.tr("<p>The URL <b>{0}</b> was found in the Safe" |
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
262 | " Browsing database.</p>{1}").format( |
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
263 | url.toString(), "".join(threatMessages)), |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
264 | EricMessageBox.Abort | EricMessageBox.Ignore, |
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
265 | EricMessageBox.Abort) |
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
266 | if res == EricMessageBox.Abort: |
6093
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
267 | downloadItem.cancel() |
5ed91fe54bc9
Implemented some optimizations with respect to Google Safe Browsing and browser startup with Qt Help support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6091
diff
changeset
|
268 | return |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
269 | |
6286
2c8a751d6137
DownloadManager: fixed an issue getting the main window
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6234
diff
changeset
|
270 | window = WebBrowserWindow.getWindow() |
8235
78e6d29eb773
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
271 | pageUrl = window.currentBrowser().url() if window else QUrl() |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2058
diff
changeset
|
272 | from .DownloadItem import DownloadItem |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
273 | itm = DownloadItem(downloadItem=downloadItem, pageUrl=pageUrl, |
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
274 | parent=self) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | self.__addItem(itm) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | |
6224
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
277 | if Preferences.getWebBrowser("DownloadManagerAutoOpen"): |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
278 | self.show() |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
279 | else: |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
280 | self.__startUpdateTimer() |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
281 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
282 | def show(self): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
283 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
284 | Public slot to show the download manager dialog. |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
285 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
286 | self.__startUpdateTimer() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8217
diff
changeset
|
288 | super().show() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | self.activateWindow() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | self.raise_() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
292 | def __addItem(self, itm, append=False): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | Private method to add a download to the list of downloads. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
296 | @param itm reference to the download item |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
297 | @type DownloadItem |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
298 | @param append flag indicating to append the item |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
299 | @type bool |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | """ |
6118
da9e08920e7c
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6093
diff
changeset
|
301 | itm.statusChanged.connect(lambda: self.__updateRow(itm)) |
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:
748
diff
changeset
|
302 | itm.downloadFinished.connect(self.__finished) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
304 | # insert at top of window |
8235
78e6d29eb773
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
305 | row = self.downloadsCount() if append else 0 |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | self.__model.beginInsertRows(QModelIndex(), row, row) |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
307 | if append: |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
308 | self.__downloads.append(itm) |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
309 | else: |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
310 | self.__downloads.insert(0, itm) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | self.__model.endInsertRows() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | self.downloadsView.setIndexWidget(self.__model.index(row, 0), itm) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
314 | icon = self.style().standardIcon(QStyle.StandardPixmap.SP_FileIcon) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | itm.setIcon(icon) |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
316 | self.downloadsView.setRowHeight( |
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
317 | row, itm.sizeHint().height() * self.__rowHeightMultiplier) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | # just in case the download finished before the constructor returned |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | self.__updateRow(itm) |
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
|
320 | self.changeOccurred() |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
321 | |
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
322 | self.downloadsCountChanged.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | |
6118
da9e08920e7c
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6093
diff
changeset
|
324 | def __updateRow(self, itm): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | Private slot to update a download item. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | |
6118
da9e08920e7c
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6093
diff
changeset
|
328 | @param itm reference to the download item |
da9e08920e7c
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6093
diff
changeset
|
329 | @type DownloadItem |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | if itm not in self.__downloads: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | row = self.__downloads.index(itm) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | if self.__iconProvider is None: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | self.__iconProvider = QFileIconProvider() |
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 | icon = self.__iconProvider.icon(QFileInfo(itm.fileName())) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | if icon.isNull(): |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
341 | icon = self.style().standardIcon(QStyle.StandardPixmap.SP_FileIcon) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | itm.setIcon(icon) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
344 | self.downloadsView.setRowHeight( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
345 | row, |
5928
a3809f75ca07
Changed the logic of the two web browsers in order to put new downloads at the top of the list of downloads and add the download date and time to the shown info.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
346 | itm.minimumSizeHint().height() * self.__rowHeightMultiplier) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | remove = False |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
350 | if ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
351 | itm.downloadedSuccessfully() and |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
352 | self.removePolicy() == DownloadManager.RemoveSuccessFullDownload |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
353 | ): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | remove = True |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | if remove: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | self.__model.removeRow(row) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | self.cleanupButton.setEnabled( |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
360 | (self.downloadsCount() - self.activeDownloadsCount()) > 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
|
361 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
362 | # record the change |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
363 | self.changeOccurred() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | def removePolicy(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | Public method to get the remove policy. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | @return remove policy (integer) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | """ |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
371 | return Preferences.getWebBrowser("DownloadManagerRemovePolicy") |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | def setRemovePolicy(self, policy): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | Public method to set the remove policy. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
377 | @param policy policy to be set |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
378 | (DownloadManager.RemoveExit, DownloadManager.RemoveNever, |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | DownloadManager.RemoveSuccessFullDownload) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | """ |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
381 | if policy in (DownloadManager.RemoveExit, |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
382 | DownloadManager.RemoveNever, |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
383 | DownloadManager.RemoveSuccessFullDownload): |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
384 | |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
385 | if policy == self.removePolicy(): |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
386 | return |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
387 | |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
388 | Preferences.setWebBrowser("DownloadManagerRemovePolicy", |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
389 | self.policy) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | def save(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | Public method to save the download settings. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | if not self.__loaded: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
398 | Preferences.setWebBrowser("DownloadManagerSize", self.size()) |
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
399 | Preferences.setWebBrowser("DownloadManagerPosition", self.pos()) |
673
1c1f3a125e68
Fixed a few issues with the download manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
669
diff
changeset
|
400 | if self.removePolicy() == DownloadManager.RemoveExit: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
403 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
4788
7076adec8ddd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4772
diff
changeset
|
404 | if WebBrowserWindow.isPrivate(): |
4772
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
405 | return |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
406 | |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
407 | downloads = [] |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
408 | for download in self.__downloads: |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
409 | downloads.append(download.getData()) |
db71b47b663e
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4769
diff
changeset
|
410 | Preferences.setWebBrowser("DownloadManagerDownloads", downloads) |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | def __load(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | """ |
748
eb7e73107d27
Improved the SSL certificate handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
679
diff
changeset
|
414 | Private method to load the download settings. |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | if self.__loaded: |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
419 | size = Preferences.getWebBrowser("DownloadManagerSize") |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | if size.isValid(): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | self.resize(size) |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
422 | pos = Preferences.getWebBrowser("DownloadManagerPosition") |
669
d405dc3e2ed6
Added code to save the position of the download manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
423 | self.move(pos) |
d405dc3e2ed6
Added code to save the position of the download manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
668
diff
changeset
|
424 | |
6085
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
425 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
426 | if not WebBrowserWindow.isPrivate(): |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
427 | downloads = Preferences.getWebBrowser("DownloadManagerDownloads") |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
428 | for download in downloads: |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
429 | if ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
430 | not download["URL"].isEmpty() and |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
431 | bool(download["Location"]) |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
432 | ): |
6085
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
433 | from .DownloadItem import DownloadItem |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
434 | itm = DownloadItem(parent=self) |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
435 | itm.setData(download) |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
436 | self.__addItem(itm, append=True) |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
437 | self.cleanupButton.setEnabled( |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
438 | (self.downloadsCount() - self.activeDownloadsCount()) > 0) |
668
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 | self.__loaded = True |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
441 | |
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
442 | self.downloadsCountChanged.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | |
6085
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
444 | def closeEvent(self, evt): |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
445 | """ |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
446 | Protected event handler for the close event. |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
447 | |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
448 | @param evt reference to the close event |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
449 | @type QCloseEvent |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
450 | """ |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
451 | self.save() |
7e48a0d98cce
Added the capability to pause/resume download (Qt 5.10.0/PyQt 5.10.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
452 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | def cleanup(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | Public slot to cleanup the downloads. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | self.on_cleanupButton_clicked() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | @pyqtSlot() |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | def on_cleanupButton_clicked(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | """ |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
462 | Private slot to cleanup the downloads. |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | """ |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
464 | if self.downloadsCount() == 0: |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
465 | return |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
467 | self.__model.removeRows(0, self.downloadsCount()) |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
468 | if ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
469 | self.downloadsCount() == 0 and |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
470 | self.__iconProvider is not None |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
471 | ): |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
757
diff
changeset
|
472 | self.__iconProvider = None |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | |
679
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
474 | self.changeOccurred() |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
475 | |
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
476 | self.downloadsCountChanged.emit() |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | |
6224
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
478 | def __finished(self, success): |
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:
748
diff
changeset
|
479 | """ |
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:
748
diff
changeset
|
480 | Private slot to handle a finished download. |
6224
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
481 | |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
482 | @param success flag indicating a successful download |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
483 | @type bool |
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:
748
diff
changeset
|
484 | """ |
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:
748
diff
changeset
|
485 | if self.isVisible(): |
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:
748
diff
changeset
|
486 | QApplication.alert(self) |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
487 | |
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
488 | self.downloadsCountChanged.emit() |
6224
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
489 | |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
490 | if self.activeDownloadsCount() == 0: |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
491 | # all active downloads are done |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8322
diff
changeset
|
492 | if success and ericApp().activeWindow() is not self: |
7955
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
493 | WebBrowserWindow.showNotification( |
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
494 | UI.PixmapCache.getPixmap("downloads48"), |
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
495 | self.tr("Downloads finished"), |
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
496 | self.tr("All files have been downloaded.") |
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
497 | ) |
6224
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
498 | if not Preferences.getWebBrowser("DownloadManagerAutoClose"): |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
499 | self.raise_() |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
500 | self.activateWindow() |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
501 | |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
502 | self.__stopUpdateTimer() |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
503 | self.infoLabel.clear() |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
504 | self.setWindowTitle(self.tr("Download Manager")) |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
505 | if Globals.isWindowsPlatform(): |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
506 | self.__taskbarButton().progress().hide() |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
507 | |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
508 | if Preferences.getWebBrowser("DownloadManagerAutoClose"): |
08875555771a
Web Browser (NG): some more improvements of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6222
diff
changeset
|
509 | self.close() |
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:
748
diff
changeset
|
510 | |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | def setDownloadDirectory(self, directory): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | Public method to set the current download directory. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | @param directory current download directory (string) |
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 | self.__downloadDirectory = directory |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | if self.__downloadDirectory != "": |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | self.__downloadDirectory += "/" |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | def downloadDirectory(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | Public method to get the current download directory. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | @return current download directory (string) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | return self.__downloadDirectory |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
529 | def downloadsCount(self): |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | Public method to get the number of downloads. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | |
6134
cb0985e8da91
Introduced a navigation bar button to open the downloads manager window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6118
diff
changeset
|
533 | @return number of downloads |
6153
0b18c86c03a1
Updated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
534 | @rtype int |
668
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | return len(self.__downloads) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | def downloads(self): |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | Public method to get a reference to the downloads. |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | @return reference to the downloads (list of DownloadItem) |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | """ |
b0061a6f7484
Added a download manager to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | return self.__downloads |
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 changeOccurred(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 signal a change. |
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 | self.__saveTimer.changeOccurred() |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
551 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
552 | def __taskbarButton(self): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
553 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
554 | Private method to get a reference to the task bar button (Windows |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
555 | only). |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
556 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
557 | @return reference to the task bar button |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
558 | @rtype QWinTaskbarButton or None |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
559 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
560 | if Globals.isWindowsPlatform(): |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
561 | from PyQt6.QtWinExtras import QWinTaskbarButton |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
562 | if self.__winTaskbarButton is None: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
563 | window = WebBrowserWindow.mainWindow() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
564 | self.__winTaskbarButton = QWinTaskbarButton( |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
565 | window.windowHandle()) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
566 | self.__winTaskbarButton.progress().setRange(0, 100) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
567 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
568 | return self.__winTaskbarButton |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
569 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
570 | def timerEvent(self, evt): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
571 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
572 | Protected event handler for timer events. |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
573 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
574 | @param evt reference to the timer event |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
575 | @type QTimerEvent |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
576 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
577 | if evt.timerId() == self.__updateTimer.timerId(): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
578 | if self.activeDownloadsCount() == 0: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
579 | self.__stopUpdateTimer() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
580 | self.infoLabel.clear() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
581 | self.setWindowTitle(self.tr("Download Manager")) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
582 | if Globals.isWindowsPlatform(): |
6222
baffb22b4467
DownloadManager: Fixed issues in the Windows related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6221
diff
changeset
|
583 | self.__taskbarButton().progress().hide() |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
584 | else: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
585 | progresses = [] |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
586 | for itm in self.__downloads: |
7268
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
587 | if ( |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
588 | itm is None or |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
589 | itm.downloadCanceled() or |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
590 | not itm.downloading() |
a28338eaf694
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
591 | ): |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
592 | continue |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
593 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
594 | progresses.append(( |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
595 | itm.downloadProgress(), |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
596 | itm.remainingTime(), |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
597 | itm.currentSpeed() |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
598 | )) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
599 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
600 | if not progresses: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
601 | return |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
602 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
603 | remaining = 0 |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
604 | progress = 0 |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
605 | speed = 0.0 |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
606 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
607 | for progressData in progresses: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
608 | if progressData[1] > remaining: |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
609 | remaining = progressData[1] |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
610 | progress += progressData[0] |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
611 | speed += progressData[2] |
8217
385f60c94548
Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
612 | progress /= len(progresses) |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
613 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
614 | if self.isVisible(): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
615 | self.infoLabel.setText(self.tr( |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
616 | "{0}% of %n file(s) ({1}) {2}", "", |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
617 | len(progresses)).format( |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
618 | progress, |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
619 | speedString(speed), |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
620 | timeString(remaining), |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
621 | )) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
622 | self.setWindowTitle(self.tr("{0}% - Download Manager")) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
623 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
624 | if Globals.isWindowsPlatform(): |
6222
baffb22b4467
DownloadManager: Fixed issues in the Windows related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6221
diff
changeset
|
625 | self.__taskbarButton().progress().show() |
baffb22b4467
DownloadManager: Fixed issues in the Windows related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6221
diff
changeset
|
626 | self.__taskbarButton().progress().setValue(progress) |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
627 | |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8217
diff
changeset
|
628 | super().timerEvent(evt) |
6221
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
629 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
630 | def __startUpdateTimer(self): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
631 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
632 | Private slot to start the update timer. |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
633 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
634 | if self.activeDownloadsCount() and not self.__updateTimer.isActive(): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
635 | self.__updateTimer.start(DownloadManager.UpdateTimerTimeout, self) |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
636 | |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
637 | def __stopUpdateTimer(self): |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
638 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
639 | Private slot to stop the update timer. |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
640 | """ |
35ec993034e1
Web Browser (NG): improvement of the download manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6153
diff
changeset
|
641 | self.__updateTimer.stop() |
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
|
642 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
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 | ## Context menu related methods below |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2954
diff
changeset
|
645 | ########################################################################### |
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
|
646 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
647 | def __currentItem(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
|
648 | """ |
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 | Private method to get a reference to the current item. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
650 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
651 | @return reference to the current item (DownloadItem) |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
652 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
653 | index = self.downloadsView.currentIndex() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
654 | if index and index.isValid(): |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
655 | row = index.row() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
656 | return self.__downloads[row] |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
657 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
658 | return 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
|
659 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
660 | def __contextMenuOpen(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
|
661 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
662 | Private method 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
|
663 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
664 | itm = self.__currentItem() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
665 | if itm is not 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
|
666 | itm.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
|
667 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
668 | def __contextMenuOpenFolder(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
|
669 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
670 | Private method 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
|
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 | itm = self.__currentItem() |
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 | if itm is not 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
|
674 | itm.openFolder() |
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 | def __contextMenuCancel(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
|
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 | Private method to cancel the current 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
|
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
|
680 | itm = self.__currentItem() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
681 | if itm is not 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
|
682 | itm.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
|
683 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
684 | def __contextMenuGotoPage(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
|
685 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
686 | Private method to open 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
|
687 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
688 | itm = self.__currentItem() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
689 | if itm is not 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
|
690 | url = itm.getPageUrl() |
4768
57da9217196b
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
691 | WebBrowserWindow.mainWindow().openUrl(url, "") |
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
|
692 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
693 | def __contextMenuCopyLink(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
|
694 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
695 | Private method to copy the download link to the clipboard. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
696 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
697 | itm = self.__currentItem() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
698 | if itm is not None: |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
699 | url = itm.getPageUrl().toDisplayString( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7955
diff
changeset
|
700 | QUrl.ComponentFormattingOption.FullyDecoded) |
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
|
701 | QApplication.clipboard().setText(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
|
702 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
703 | def __contextMenuSelectAll(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
|
704 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
705 | Private method to select all downloads. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
706 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
707 | self.downloadsView.selectAll() |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
708 | |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
709 | def __contextMenuRemoveSelected(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
|
710 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
711 | Private method to remove the selected downloads from the list. |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
712 | """ |
b427350a9d97
Added a context menu to the download manager of the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
673
diff
changeset
|
713 | self.downloadsView.removeSelected() |