38 |
38 |
39 self.setToolTip(self.tr("Modify JavaScript settings temporarily for" |
39 self.setToolTip(self.tr("Modify JavaScript settings temporarily for" |
40 " a site or globally")) |
40 " a site or globally")) |
41 self.__icon = UI.PixmapCache.getPixmap("fileJavascript").scaled(16, 16) |
41 self.__icon = UI.PixmapCache.getPixmap("fileJavascript").scaled(16, 16) |
42 self.setPixmap(self.__icon) |
42 self.setPixmap(self.__icon) |
|
43 |
|
44 self.__settings = {} |
43 |
45 |
44 self._window.tabWidget().currentChanged.connect(self.__updateIcon) |
46 self._window.tabWidget().currentChanged.connect(self.__updateIcon) |
45 self._window.tabWidget().currentUrlChanged.connect(self.__updateIcon) |
47 self._window.tabWidget().currentUrlChanged.connect(self.__updateIcon) |
46 self.clicked.connect(self.__showMenu) |
48 self.clicked.connect(self.__showMenu) |
47 |
49 |
101 @pyqtSlot() |
103 @pyqtSlot() |
102 def __toggleJavaScript(self): |
104 def __toggleJavaScript(self): |
103 """ |
105 """ |
104 Private slot to toggle the JavaScript setting. |
106 Private slot to toggle the JavaScript setting. |
105 """ |
107 """ |
106 if self._currentPage() is None: |
108 page = self._currentPage() |
|
109 if page is None: |
107 return |
110 return |
108 |
111 |
109 current = self._testCurrentPageWebAttribute( |
112 current = self._testCurrentPageWebAttribute( |
110 QWebEngineSettings.JavascriptEnabled) |
113 QWebEngineSettings.JavascriptEnabled) |
111 self._setCurrentPageWebAttribute(QWebEngineSettings.JavascriptEnabled, |
114 self._setCurrentPageWebAttribute(QWebEngineSettings.JavascriptEnabled, |
112 not current) |
115 not current) |
|
116 |
|
117 self.__settings[page] = not current |
|
118 page.navigationRequestAccepted.connect( |
|
119 lambda u, t, mf: self.__navigationRequestAccepted(u, t, mf, page)) |
113 |
120 |
114 self._window.currentBrowser().reload() |
121 self._window.currentBrowser().reload() |
115 |
122 |
116 self.__updateIcon() |
123 self.__updateIcon() |
117 |
124 |
125 """ |
132 """ |
126 from .JavaScriptSettingsDialog import JavaScriptSettingsDialog |
133 from .JavaScriptSettingsDialog import JavaScriptSettingsDialog |
127 dlg = JavaScriptSettingsDialog(self._window) |
134 dlg = JavaScriptSettingsDialog(self._window) |
128 if dlg.exec_() == QDialog.Accepted: |
135 if dlg.exec_() == QDialog.Accepted: |
129 self._window.preferencesChanged() |
136 self._window.preferencesChanged() |
|
137 |
|
138 def __navigationRequestAccepted(self, url, navigationType, isMainFrame, |
|
139 page): |
|
140 """ |
|
141 Private method to handle the navigationRequestAccepted signal. |
|
142 |
|
143 @param url URL being loaded |
|
144 @type QUrl |
|
145 @param navigationType type of navigation request |
|
146 @type QWebEnginePage.NavigationType |
|
147 @param isMainFrame flag indicating a navigation request of the |
|
148 main frame |
|
149 @type bool |
|
150 @param page reference to the web page |
|
151 @type WebBrowserPage |
|
152 """ |
|
153 if url.scheme() in ("eric", "qthelp"): |
|
154 enable = True |
|
155 else: |
|
156 enable = self.__settings[page] |
|
157 if isMainFrame: |
|
158 page.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, |
|
159 enable) |