WebBrowser/StatusBar/JavaScriptIcon.py

changeset 6144
00c723b11d4d
parent 6136
dfef226f9c7f
child 6149
e611e45a17d6
equal deleted inserted replaced
6143:bedf7ca6cea0 6144:00c723b11d4d
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)

eric ide

mercurial