Sun, 16 May 2021 20:07:24 +0200
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
a894e8c92369
Implemented the JavaScript status bar icon.
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) 2016 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the JavaScript status bar icon. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | # |
4966
d246d8568d6c
Corrected a typo.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4965
diff
changeset
|
11 | # This is modeled after the code found in Qupzilla |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | # Copyright (C) 2014 David Rosca <nowrep@gmail.com> |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | # |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
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
|
15 | from PyQt6.QtCore import pyqtSlot, Qt, QPoint, QTimer |
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
|
16 | from PyQt6.QtWidgets import QGraphicsColorizeEffect, QMenu, QDialog |
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
|
17 | from PyQt6.QtWebEngineWidgets import QWebEngineSettings |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from .StatusBarIcon import StatusBarIcon |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import UI.PixmapCache |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | class JavaScriptIcon(StatusBarIcon): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Class implementing the JavaScript status bar icon. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | def __init__(self, window): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | Constructor |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @param window reference to the web browser window |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @type WebBrowserWindow |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
35 | super().__init__(window) |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | self.setToolTip(self.tr("Modify JavaScript settings temporarily for" |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | " a site or globally")) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.__icon = UI.PixmapCache.getPixmap("fileJavascript").scaled(16, 16) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.setPixmap(self.__icon) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
6144
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
42 | self.__settings = {} |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
43 | |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self._window.tabWidget().currentChanged.connect(self.__updateIcon) |
4965
a9a4b632fe48
Some enhancements for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4964
diff
changeset
|
45 | self._window.tabWidget().currentUrlChanged.connect(self.__updateIcon) |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.clicked.connect(self.__showMenu) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.__updateIcon() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | def preferencesChanged(self): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | Public method to handle changes of the settings. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__updateIcon() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @pyqtSlot(QPoint) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | def __showMenu(self, pos): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | Private slot to show the menu. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | @param pos position to show the menu at |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | @type QPoint |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | boldFont = self.font() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | boldFont.setBold(True) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | menu = QMenu() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | menu.addAction(self.tr("Current Page Settings")).setFont(boldFont) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
70 | act = ( |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
71 | menu.addAction(self.tr("Disable JavaScript (temporarily)"), |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
72 | self.__toggleJavaScript) |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
73 | if self._testCurrentPageWebAttribute( |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
74 | QWebEngineSettings.WebAttribute.JavascriptEnabled) else |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
75 | menu.addAction(self.tr("Enable JavaScript (temporarily)"), |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
76 | self.__toggleJavaScript) |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
77 | ) |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
78 | if ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
79 | self._currentPage() is not None and |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
80 | self._currentPage().url().scheme() == "eric" |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
81 | ): |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | # JavaScript is needed for eric: scheme |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | act.setEnabled(False) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | menu.addSeparator() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | menu.addAction(self.tr("Global Settings")).setFont(boldFont) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | menu.addAction(self.tr("Manage JavaScript Settings"), |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | self.__showJavaScriptSettingsDialog) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
89 | menu.exec(pos) |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | @pyqtSlot() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | def __updateIcon(self): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | Private slot to update the icon. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if self._testCurrentPageWebAttribute( |
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:
7923
diff
changeset
|
97 | QWebEngineSettings.WebAttribute.JavascriptEnabled): |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | self.setGraphicsEffect(None) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | else: |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | effect = QGraphicsColorizeEffect(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:
7923
diff
changeset
|
101 | effect.setColor(Qt.GlobalColor.gray) |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | self.setGraphicsEffect(effect) |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | @pyqtSlot() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def __toggleJavaScript(self): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | Private slot to toggle the JavaScript setting. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
6144
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
109 | page = self._currentPage() |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
110 | if page is None: |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | return |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | current = self._testCurrentPageWebAttribute( |
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:
7923
diff
changeset
|
114 | QWebEngineSettings.WebAttribute.JavascriptEnabled) |
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:
7923
diff
changeset
|
115 | self._setCurrentPageWebAttribute( |
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:
7923
diff
changeset
|
116 | QWebEngineSettings.WebAttribute.JavascriptEnabled, not current) |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
6144
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
118 | self.__settings[page] = not current |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
119 | page.navigationRequestAccepted.connect( |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
120 | lambda u, t, mf: self.__navigationRequestAccepted(u, t, mf, page)) |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
121 | |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | self._window.currentBrowser().reload() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | self.__updateIcon() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | @pyqtSlot() |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | def __showJavaScriptSettingsDialog(self): |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | Private slot to show the JavaScript settings dialog. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | Note: This is the JavaScript subset of the web browser configuration |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | page. |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | """ |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | from .JavaScriptSettingsDialog import JavaScriptSettingsDialog |
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | dlg = JavaScriptSettingsDialog(self._window) |
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:
7923
diff
changeset
|
136 | if dlg.exec() == QDialog.DialogCode.Accepted: |
4964
a894e8c92369
Implemented the JavaScript status bar icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self._window.preferencesChanged() |
6151
29564aad2f97
JavaScriptEnabled: Added a configuration option to globally disable/enable JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6149
diff
changeset
|
138 | QTimer.singleShot(500, self.__updateIcon) |
6144
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
139 | |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
140 | def __navigationRequestAccepted(self, url, navigationType, isMainFrame, |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
141 | page): |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
142 | """ |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
143 | Private method to handle the navigationRequestAccepted signal. |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
144 | |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
145 | @param url URL being loaded |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
146 | @type QUrl |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
147 | @param navigationType type of navigation request |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
148 | @type QWebEnginePage.NavigationType |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
149 | @param isMainFrame flag indicating a navigation request of the |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
150 | main frame |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
151 | @type bool |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
152 | @param page reference to the web page |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
153 | @type WebBrowserPage |
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
154 | """ |
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
|
155 | enable = (True if url.scheme() in ("eric", "qthelp") |
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
|
156 | else self.__settings[page]) |
6144
00c723b11d4d
JavaScriptIcon: Made it work with per page settings and override settings on internal schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6136
diff
changeset
|
157 | if isMainFrame: |
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:
7923
diff
changeset
|
158 | page.settings().setAttribute( |
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:
7923
diff
changeset
|
159 | QWebEngineSettings.WebAttribute.JavascriptEnabled, enable) |