WebBrowser/WebBrowserView.py

branch
maintenance
changeset 6826
c6dda2cbe081
parent 6693
3629d88ae235
parent 6797
d9e56b0aa7ac
child 6923
d062df8f1d9f
equal deleted inserted replaced
6764:d14ddbfbbd36 6826:c6dda2cbe081
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.printPageRequested.connect(self.__printPage) 157 self.__page.printPageRequested.connect(self.__printPage)
158 try: 158 try:
159 self.__page.quotaRequested.connect(self.__quotaRequested) 159 self.__page.quotaRequested.connect(self.__quotaRequested)
160 self.__page.registerProtocolHandlerRequested.connect( 160 # The registerProtocolHandlerRequested signal is handled in
161 self.__registerProtocolHandlerRequested) 161 # WebBrowserPage.
162 except AttributeError: 162 except AttributeError:
163 # pre Qt 5.11 163 # pre Qt 5.11
164 pass 164 pass
165 try: 165 try:
166 self.__page.selectClientCertificate.connect( 166 self.__page.selectClientCertificate.connect(
1517 if obj is self and evt.type() == QEvent.ParentChange and \ 1517 if obj is self and evt.type() == QEvent.ParentChange and \
1518 self.parentWidget() is not None: 1518 self.parentWidget() is not None:
1519 self.parentWidget().installEventFilter(self) 1519 self.parentWidget().installEventFilter(self)
1520 1520
1521 # find the render widget receiving events for the web page 1521 # find the render widget receiving events for the web page
1522 if qVersionTuple() < (5, 8, 0) or qVersionTuple() >= (5, 12, 0): 1522 if obj is self and evt.type() == QEvent.ChildAdded:
1523 if obj is self and evt.type() == QEvent.ChildAdded: 1523 if qVersionTuple() < (5, 8, 0):
1524 child = evt.child() 1524 child = evt.child()
1525 if child and child.inherits( 1525 if child and child.inherits(
1526 "QtWebEngineCore::" 1526 "QtWebEngineCore::"
1527 "RenderWidgetHostViewQtDelegateWidget"): 1527 "RenderWidgetHostViewQtDelegateWidget"):
1528 self.__rwhvqt = child 1528 self.__rwhvqt = child
1529 self.grabGesture(Qt.PinchGesture) 1529 self.grabGesture(Qt.PinchGesture)
1530 self.__rwhvqt.grabGesture(Qt.PinchGesture) 1530 self.__rwhvqt.grabGesture(Qt.PinchGesture)
1531 self.__rwhvqt.installEventFilter(self) 1531 self.__rwhvqt.installEventFilter(self)
1532 elif qVersionTuple() >= (5, 11, 0): 1532 elif qVersionTuple() >= (5, 11, 0):
1533 if obj is self and evt.type() == QEvent.ChildAdded:
1534 QTimer.singleShot(0, self.__setRwhvqt) 1533 QTimer.singleShot(0, self.__setRwhvqt)
1535 1534
1536 # forward events to WebBrowserView 1535 # forward events to WebBrowserView
1537 if obj is self.__rwhvqt and \ 1536 if obj is self.__rwhvqt and \
1538 evt.type() in [QEvent.KeyPress, QEvent.KeyRelease, 1537 evt.type() in [QEvent.KeyPress, QEvent.KeyRelease,
2260 2259
2261 if ok: 2260 if ok:
2262 quotaRequest.accept() 2261 quotaRequest.accept()
2263 else: 2262 else:
2264 quotaRequest.reject() 2263 quotaRequest.reject()
2265
2266 @pyqtSlot("QWebEngineRegisterProtocolHandlerRequest")
2267 def __registerProtocolHandlerRequested(self, request):
2268 """
2269 Private slot to handle requests for registration of a protocol
2270 handler.
2271
2272 @param request reference to the protocol handler request object
2273 @type QWebEngineRegisterProtocolHandlerRequest
2274 """
2275 acceptRequest = Preferences.getWebBrowser(
2276 "AcceptProtocolHandlerRequest")
2277 # yes/no/ask (0, 1, 2)
2278 if acceptRequest == 0:
2279 # always yes
2280 ok = True
2281 elif acceptRequest == 1:
2282 # always no
2283 ok = False
2284 else:
2285 # ask user
2286 ok = E5MessageBox.yesNo(
2287 self,
2288 self.tr("Protocol Handler Request"),
2289 self.tr("""<p> Allow the website at <b>{0}</b> to open"""
2290 """ all <b>{1}</b> links?</p>""")
2291 .format(request.origin().host(), request.scheme())
2292 )
2293
2294 if ok:
2295 request.accept()
2296 else:
2297 request.reject()
2298 2264
2299 ########################################################################### 2265 ###########################################################################
2300 ## Methods below implement slots for Qt 5.12+ 2266 ## Methods below implement slots for Qt 5.12+
2301 ########################################################################### 2267 ###########################################################################
2302 2268

eric ide

mercurial