WebBrowser/WebBrowserView.py

branch
maintenance
changeset 6455
22a6fc33ab6d
parent 6273
0daf79d65080
parent 6451
72c58236ab7e
child 6487
d3ca83d691e7
equal deleted inserted replaced
6409:913a08004977 6455:22a6fc33ab6d
153 self.setPage(self.__page) 153 self.setPage(self.__page)
154 154
155 self.__page.safeBrowsingAbort.connect(self.safeBrowsingAbort) 155 self.__page.safeBrowsingAbort.connect(self.safeBrowsingAbort)
156 self.__page.safeBrowsingBad.connect(self.safeBrowsingBad) 156 self.__page.safeBrowsingBad.connect(self.safeBrowsingBad)
157 self.__page.printRequested.connect(self.__printPage) 157 self.__page.printRequested.connect(self.__printPage)
158 try:
159 self.__page.quotaRequested.connect(self.__quotaRequested)
160 self.__page.registerProtocolHandlerRequested.connect(
161 self.__registerProtocolHandlerRequested)
162 except AttributeError:
163 # pre Qt 5.11
164 pass
158 165
159 def __setRwhvqt(self): 166 def __setRwhvqt(self):
160 """ 167 """
161 Private slot to set widget that receives input events. 168 Private slot to set widget that receives input events.
162 """ 169 """
542 549
543 if not hitTest.isContentEditable() and not hitTest.isContentSelected(): 550 if not hitTest.isContentEditable() and not hitTest.isContentSelected():
544 self.__menu.addSeparator() 551 self.__menu.addSeparator()
545 self.__menu.addAction(self.__mw.adBlockIcon().menuAction()) 552 self.__menu.addAction(self.__mw.adBlockIcon().menuAction())
546 553
547 if Preferences.getWebBrowser("WebInspectorEnabled"): 554 if qVersionTuple() >= (5, 11, 0) or \
555 Preferences.getWebBrowser("WebInspectorEnabled"):
548 self.__menu.addSeparator() 556 self.__menu.addSeparator()
549 self.__menu.addAction( 557 self.__menu.addAction(
550 UI.PixmapCache.getIcon("webInspector.png"), 558 UI.PixmapCache.getIcon("webInspector.png"),
551 self.tr("Inspect Element..."), self.__webInspector) 559 self.tr("Inspect Element..."), self.__webInspector)
552 560
2205 def __printPage(self): 2213 def __printPage(self):
2206 """ 2214 """
2207 Private slot to support printing from the web page. 2215 Private slot to support printing from the web page.
2208 """ 2216 """
2209 self.__mw.tabWidget.printBrowser(browser=self) 2217 self.__mw.tabWidget.printBrowser(browser=self)
2218
2219 ###########################################################################
2220 ## Methods below implement slots for Qt 5.11+
2221 ###########################################################################
2222
2223 if qVersionTuple() >= (5, 11, 0):
2224 @pyqtSlot("QWebEngineQuotaRequest")
2225 def __quotaRequested(self, quotaRequest):
2226 """
2227 Private slot to handle quota requests of the web page.
2228
2229 @param quotaRequest reference to the quota request object
2230 @type QWebEngineQuotaRequest
2231 """
2232 acceptRequest = Preferences.getWebBrowser("AcceptQuotaRequest")
2233 # yes/no/ask (0, 1, 2)
2234 if acceptRequest == 0:
2235 # always yes
2236 ok = True
2237 elif acceptRequest == 1:
2238 # always no
2239 ok = False
2240 else:
2241 # ask user
2242 from .Download.DownloadUtilities import dataString
2243 sizeStr = dataString(quotaRequest.requestedSize())
2244
2245 ok = E5MessageBox.yesNo(
2246 self,
2247 self.tr("Quota Request"),
2248 self.tr("""<p> Allow the website at <b>{0}</b> to use"""
2249 """ <b>{1}</b> of persistent storage?</p>""")
2250 .format(quotaRequest.origin().host(), sizeStr)
2251 )
2252
2253 if ok:
2254 quotaRequest.accept()
2255 else:
2256 quotaRequest.reject()
2257
2258 @pyqtSlot("QWebEngineRegisterProtocolHandlerRequest")
2259 def __registerProtocolHandlerRequested(self, request):
2260 """
2261 Private slot to handle requests for registration of a protocol handler.
2262
2263 @param request reference to the protocol handler request object
2264 @type QWebEngineRegisterProtocolHandlerRequest
2265 """
2266 acceptRequest = Preferences.getWebBrowser(
2267 "AcceptProtocolHandlerRequest")
2268 # yes/no/ask (0, 1, 2)
2269 if acceptRequest == 0:
2270 # always yes
2271 ok = True
2272 elif acceptRequest == 1:
2273 # always no
2274 ok = False
2275 else:
2276 # ask user
2277 ok = E5MessageBox.yesNo(
2278 self,
2279 self.tr("Protocol Handler Request"),
2280 self.tr("""<p> Allow the website at <b>{0}</b> to open all"""
2281 """ <b>{1}</b> links?</p>""")
2282 .format(request.origin().host(), request.scheme())
2283 )
2284
2285 if ok:
2286 request.accept()
2287 else:
2288 request.reject()

eric ide

mercurial