121 |
121 |
122 self.__inspector = None |
122 self.__inspector = None |
123 WebInspector.registerView(self) |
123 WebInspector.registerView(self) |
124 |
124 |
125 if qVersion() >= "5.8.0": |
125 if qVersion() >= "5.8.0": |
|
126 if self.parentWidget() is not None: |
|
127 self.parentWidget().installEventFilter(self) |
|
128 |
126 lay = self.layout() |
129 lay = self.layout() |
127 lay.currentChanged.connect( |
130 lay.currentChanged.connect( |
128 lambda: QTimer.singleShot(0, self.__setRwhvqt)) |
131 lambda: QTimer.singleShot(0, self.__setRwhvqt)) |
129 self.__setRwhvqt() |
132 self.__setRwhvqt() |
130 |
133 |
1249 self.pageAction(QWebEnginePage.Back).trigger() |
1252 self.pageAction(QWebEnginePage.Back).trigger() |
1250 evt.accept() |
1253 evt.accept() |
1251 elif evt.button() == Qt.XButton2: |
1254 elif evt.button() == Qt.XButton2: |
1252 self.pageAction(QWebEnginePage.Forward).trigger() |
1255 self.pageAction(QWebEnginePage.Forward).trigger() |
1253 evt.accept() |
1256 evt.accept() |
1254 else: |
|
1255 super(WebBrowserView, self).mousePressEvent(evt) |
|
1256 |
1257 |
1257 def _mouseReleaseEvent(self, evt): |
1258 def _mouseReleaseEvent(self, evt): |
1258 """ |
1259 """ |
1259 Protected method called by a mouse release event. |
1260 Protected method called by a mouse release event. |
1260 |
1261 |
1281 """ |
1282 """ |
1282 Protected method to handle mouse move events. |
1283 Protected method to handle mouse move events. |
1283 |
1284 |
1284 @param evt reference to the mouse event (QMouseEvent) |
1285 @param evt reference to the mouse event (QMouseEvent) |
1285 """ |
1286 """ |
|
1287 if self.__mw and self.__mw.isFullScreen(): |
|
1288 if self.__mw.isFullScreenNavigationVisible(): |
|
1289 self.__mw.hideFullScreenNavigation() |
|
1290 elif evt.y() < 5: |
|
1291 # mouse is within 5px to the top |
|
1292 self.__mw.showFullScreenNavigation() |
|
1293 |
1286 if WebBrowserWindow.autoScroller().mouseMove(evt): |
1294 if WebBrowserWindow.autoScroller().mouseMove(evt): |
1287 evt.accept() |
1295 evt.accept() |
1288 |
1296 |
1289 def _wheelEvent(self, evt): |
1297 def _wheelEvent(self, evt): |
1290 """ |
1298 """ |
1323 """ |
1327 """ |
1324 if self.__mw.personalInformationManager().viewKeyPressEvent(self, evt): |
1328 if self.__mw.personalInformationManager().viewKeyPressEvent(self, evt): |
1325 evt.accept() |
1329 evt.accept() |
1326 return |
1330 return |
1327 |
1331 |
|
1332 if evt.key() == Qt.Key_ZoomIn: |
|
1333 self.zoomIn() |
|
1334 evt.accept() |
|
1335 elif evt.key() == Qt.Key_ZoomOut: |
|
1336 self.zoomOut() |
|
1337 evt.accept() |
|
1338 elif evt.key() == Qt.Key_Plus: |
|
1339 if evt.modifiers() & Qt.ControlModifier: |
|
1340 self.zoomIn() |
|
1341 evt.accept() |
|
1342 elif evt.key() == Qt.Key_Minus: |
|
1343 if evt.modifiers() & Qt.ControlModifier: |
|
1344 self.zoomOut() |
|
1345 evt.accept() |
|
1346 elif evt.key() == Qt.Key_0: |
|
1347 if evt.modifiers() & Qt.ControlModifier: |
|
1348 self.zoomReset() |
|
1349 evt.accept() |
|
1350 elif evt.key() == Qt.Key_M: |
|
1351 if evt.modifiers() & Qt.ControlModifier: |
|
1352 self.__muteMedia() |
|
1353 evt.accept() |
|
1354 |
|
1355 def _keyReleaseEvent(self, evt): |
|
1356 """ |
|
1357 Protected method called by a key release. |
|
1358 |
|
1359 @param evt reference to the key event (QKeyEvent) |
|
1360 """ |
1328 if evt.key() == Qt.Key_Escape: |
1361 if evt.key() == Qt.Key_Escape: |
1329 if self.isFullScreen(): |
1362 if self.isFullScreen(): |
1330 self.triggerPageAction(QWebEnginePage.ExitFullScreen) |
1363 self.triggerPageAction(QWebEnginePage.ExitFullScreen) |
1331 evt.accept() |
1364 evt.accept() |
1332 return |
1365 self.requestFullScreen(False) |
1333 |
|
1334 super(WebBrowserView, self).keyPressEvent(evt) |
|
1335 |
|
1336 def _keyReleaseEvent(self, evt): |
|
1337 """ |
|
1338 Protected method called by a key release. |
|
1339 |
|
1340 @param evt reference to the key event (QKeyEvent) |
|
1341 """ |
|
1342 super(WebBrowserView, self).keyReleaseEvent(evt) |
|
1343 |
|
1344 def focusOutEvent(self, evt): |
|
1345 """ |
|
1346 Protected method called by a focus out event. |
|
1347 |
|
1348 @param evt reference to the focus event (QFocusEvent) |
|
1349 """ |
|
1350 super(WebBrowserView, self).focusOutEvent(evt) |
|
1351 |
|
1352 def event(self, evt): |
|
1353 """ |
|
1354 Public method handling events. |
|
1355 |
|
1356 @param evt reference to the event (QEvent) |
|
1357 @return flag indicating, if the event was handled (boolean) |
|
1358 """ |
|
1359 if evt.type() == QEvent.Gesture: |
|
1360 self._gestureEvent(evt) |
|
1361 return True |
|
1362 |
|
1363 return super(WebBrowserView, self).event(evt) |
|
1364 |
1366 |
1365 def _gestureEvent(self, evt): |
1367 def _gestureEvent(self, evt): |
1366 """ |
1368 """ |
1367 Protected method handling gesture events. |
1369 Protected method handling gesture events. |
1368 |
1370 |
1397 "RenderWidgetHostViewQtDelegateWidget"): |
1399 "RenderWidgetHostViewQtDelegateWidget"): |
1398 self.__rwhvqt = child |
1400 self.__rwhvqt = child |
1399 self.grabGesture(Qt.PinchGesture) |
1401 self.grabGesture(Qt.PinchGesture) |
1400 self.__rwhvqt.grabGesture(Qt.PinchGesture) |
1402 self.__rwhvqt.grabGesture(Qt.PinchGesture) |
1401 self.__rwhvqt.installEventFilter(self) |
1403 self.__rwhvqt.installEventFilter(self) |
|
1404 else: |
|
1405 if obj is self and evt.type() == QEvent.ParentChange and \ |
|
1406 self.parentWidget() is not None: |
|
1407 self.parentWidget().installEventFilter(self) |
1402 |
1408 |
1403 # forward events to WebBrowserView |
1409 # forward events to WebBrowserView |
1404 if obj is self.__rwhvqt: |
1410 if obj is self.__rwhvqt and \ |
|
1411 evt.type() in [QEvent.KeyPress, QEvent.KeyRelease, |
|
1412 QEvent.MouseButtonPress, QEvent.MouseButtonRelease, |
|
1413 QEvent.MouseMove, QEvent.Wheel, QEvent.Gesture]: |
1405 wasAccepted = evt.isAccepted() |
1414 wasAccepted = evt.isAccepted() |
1406 evt.setAccepted(False) |
1415 evt.setAccepted(False) |
1407 if evt.type() == QEvent.KeyPress: |
1416 if evt.type() == QEvent.KeyPress: |
1408 self._keyPressEvent(evt) |
1417 self._keyPressEvent(evt) |
1409 elif evt.type() == QEvent.KeyRelease: |
1418 elif evt.type() == QEvent.KeyRelease: |
1420 self._gestureEvent(evt) |
1429 self._gestureEvent(evt) |
1421 ret = evt.isAccepted() |
1430 ret = evt.isAccepted() |
1422 evt.setAccepted(wasAccepted) |
1431 evt.setAccepted(wasAccepted) |
1423 return ret |
1432 return ret |
1424 |
1433 |
|
1434 if obj is self.parentWidget() and \ |
|
1435 evt.type() in [QEvent.KeyPress, QEvent.KeyRelease]: |
|
1436 wasAccepted = evt.isAccepted() |
|
1437 evt.setAccepted(False) |
|
1438 if evt.type() == QEvent.KeyPress: |
|
1439 self._keyPressEvent(evt) |
|
1440 elif evt.type() == QEvent.KeyRelease: |
|
1441 self._keyReleaseEvent(evt) |
|
1442 ret = evt.isAccepted() |
|
1443 evt.setAccepted(wasAccepted) |
|
1444 return ret |
|
1445 |
1425 # block already handled events |
1446 # block already handled events |
1426 if obj is self: |
1447 if obj is self: |
1427 if evt.type() in [QEvent.KeyPress, QEvent.KeyRelease, |
1448 if evt.type() in [QEvent.KeyPress, QEvent.KeyRelease, |
1428 QEvent.MouseButtonPress, |
1449 QEvent.MouseButtonPress, |
1429 QEvent.MouseButtonRelease, |
1450 QEvent.MouseButtonRelease, |
1430 QEvent.Wheel, QEvent.Gesture]: |
1451 QEvent.MouseMove, QEvent.Wheel, QEvent.Gesture]: |
1431 return True |
1452 return True |
|
1453 |
|
1454 elif evt.type() == QEvent.Hide: |
|
1455 if self.isFullScreen(): |
|
1456 self.triggerPageAction(QWebEnginePage.ExitFullScreen) |
1432 |
1457 |
1433 return super(WebBrowserView, self).eventFilter(obj, evt) |
1458 return super(WebBrowserView, self).eventFilter(obj, evt) |
|
1459 |
|
1460 def event(self, evt): |
|
1461 """ |
|
1462 Public method handling events. |
|
1463 |
|
1464 @param evt reference to the event (QEvent) |
|
1465 @return flag indicating, if the event was handled (boolean) |
|
1466 """ |
|
1467 if evt.type() == QEvent.Gesture: |
|
1468 self._gestureEvent(evt) |
|
1469 return True |
|
1470 |
|
1471 return super(WebBrowserView, self).event(evt) |
1434 |
1472 |
1435 def inputWidget(self): |
1473 def inputWidget(self): |
1436 """ |
1474 """ |
1437 Public method to get a reference to the render widget. |
1475 Public method to get a reference to the render widget. |
1438 |
1476 |