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 |