21 from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication |
21 from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication |
22 from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage |
22 from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage |
23 |
23 |
24 from E5Gui import E5MessageBox |
24 from E5Gui import E5MessageBox |
25 |
25 |
|
26 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
26 from .WebBrowserPage import WebBrowserPage |
27 from .WebBrowserPage import WebBrowserPage |
27 |
28 |
28 from .Tools.WebIconLoader import WebIconLoader |
29 from .Tools.WebIconLoader import WebIconLoader |
29 from .Tools import Scripts |
30 from .Tools import Scripts |
30 |
31 |
74 self.setObjectName(name) |
75 self.setObjectName(name) |
75 |
76 |
76 self.__rwhvqt = None |
77 self.__rwhvqt = None |
77 self.installEventFilter(self) |
78 self.installEventFilter(self) |
78 |
79 |
79 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
|
80 self.__speedDial = WebBrowserWindow.speedDial() |
80 self.__speedDial = WebBrowserWindow.speedDial() |
81 |
81 |
82 self.__page = WebBrowserPage(self) |
82 self.__page = WebBrowserPage(self) |
83 self.setPage(self.__page) |
83 self.setPage(self.__page) |
84 |
84 |
576 @param menu reference to the menu to be populated |
576 @param menu reference to the menu to be populated |
577 @type QMenu |
577 @type QMenu |
578 @param hitTest reference to the hit test object |
578 @param hitTest reference to the hit test object |
579 @type WebHitTestResult |
579 @type WebHitTestResult |
580 """ |
580 """ |
581 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
|
582 |
|
583 if not menu.isEmpty(): |
581 if not menu.isEmpty(): |
584 menu.addSeparator() |
582 menu.addSeparator() |
585 |
583 |
586 menu.addAction( |
584 menu.addAction( |
587 UI.PixmapCache.getIcon("openNewTab.png"), |
585 UI.PixmapCache.getIcon("openNewTab.png"), |
1171 """ |
1168 """ |
1172 Protected method called by a mouse press event. |
1169 Protected method called by a mouse press event. |
1173 |
1170 |
1174 @param evt reference to the mouse event (QMouseEvent) |
1171 @param evt reference to the mouse event (QMouseEvent) |
1175 """ |
1172 """ |
|
1173 if WebBrowserWindow.autoScroller().mousePress(self, evt): |
|
1174 evt.accept() |
|
1175 return |
|
1176 |
1176 self.__mw.setEventMouseButtons(evt.buttons()) |
1177 self.__mw.setEventMouseButtons(evt.buttons()) |
1177 self.__mw.setEventKeyboardModifiers(evt.modifiers()) |
1178 self.__mw.setEventKeyboardModifiers(evt.modifiers()) |
1178 |
1179 |
1179 if evt.button() == Qt.XButton1: |
1180 if evt.button() == Qt.XButton1: |
1180 self.pageAction(QWebEnginePage.Back).trigger() |
1181 self.pageAction(QWebEnginePage.Back).trigger() |
|
1182 evt.accept() |
1181 elif evt.button() == Qt.XButton2: |
1183 elif evt.button() == Qt.XButton2: |
1182 self.pageAction(QWebEnginePage.Forward).trigger() |
1184 self.pageAction(QWebEnginePage.Forward).trigger() |
|
1185 evt.accept() |
1183 else: |
1186 else: |
1184 super(WebBrowserView, self).mousePressEvent(evt) |
1187 super(WebBrowserView, self).mousePressEvent(evt) |
1185 |
1188 |
1186 def _mouseReleaseEvent(self, evt): |
1189 def _mouseReleaseEvent(self, evt): |
1187 """ |
1190 """ |
1188 Protected method called by a mouse release event. |
1191 Protected method called by a mouse release event. |
1189 |
1192 |
1190 @param evt reference to the mouse event (QMouseEvent) |
1193 @param evt reference to the mouse event (QMouseEvent) |
1191 """ |
1194 """ |
|
1195 if WebBrowserWindow.autoScroller().mouseRelease(evt): |
|
1196 evt.accept() |
|
1197 return |
|
1198 |
1192 accepted = evt.isAccepted() |
1199 accepted = evt.isAccepted() |
1193 self.__page.event(evt) |
1200 self.__page.event(evt) |
1194 if not evt.isAccepted() and \ |
1201 if not evt.isAccepted() and \ |
1195 self.__mw.eventMouseButtons() & Qt.MidButton: |
1202 self.__mw.eventMouseButtons() & Qt.MidButton: |
1196 url = QUrl(QApplication.clipboard().text(QClipboard.Selection)) |
1203 url = QUrl(QApplication.clipboard().text(QClipboard.Selection)) |
1200 self.__mw.setEventMouseButtons(Qt.NoButton) |
1207 self.__mw.setEventMouseButtons(Qt.NoButton) |
1201 self.__mw.setEventKeyboardModifiers(Qt.NoModifier) |
1208 self.__mw.setEventKeyboardModifiers(Qt.NoModifier) |
1202 self.setSource(url) |
1209 self.setSource(url) |
1203 evt.setAccepted(accepted) |
1210 evt.setAccepted(accepted) |
1204 |
1211 |
|
1212 def _mouseMoveEvent(self, evt): |
|
1213 """ |
|
1214 Protected method to handle mouse move events. |
|
1215 |
|
1216 @param evt reference to the mouse event (QMouseEvent) |
|
1217 """ |
|
1218 if WebBrowserWindow.autoScroller().mouseMove(evt): |
|
1219 evt.accept() |
|
1220 |
1205 def _wheelEvent(self, evt): |
1221 def _wheelEvent(self, evt): |
1206 """ |
1222 """ |
1207 Protected method to handle wheel events. |
1223 Protected method to handle wheel events. |
1208 |
1224 |
1209 @param evt reference to the wheel event (QWheelEvent) |
1225 @param evt reference to the wheel event (QWheelEvent) |
1210 """ |
1226 """ |
|
1227 if WebBrowserWindow.autoScroller().wheel(): |
|
1228 evt.accept() |
|
1229 return |
|
1230 |
1211 delta = evt.angleDelta().y() |
1231 delta = evt.angleDelta().y() |
1212 if evt.modifiers() & Qt.ControlModifier: |
1232 if evt.modifiers() & Qt.ControlModifier: |
1213 if delta < 0: |
1233 if delta < 0: |
1214 self.zoomOut() |
1234 self.zoomOut() |
1215 else: |
1235 else: |
1320 self._keyReleaseEvent(evt) |
1340 self._keyReleaseEvent(evt) |
1321 elif evt.type() == QEvent.MouseButtonPress: |
1341 elif evt.type() == QEvent.MouseButtonPress: |
1322 self._mousePressEvent(evt) |
1342 self._mousePressEvent(evt) |
1323 elif evt.type() == QEvent.MouseButtonRelease: |
1343 elif evt.type() == QEvent.MouseButtonRelease: |
1324 self._mouseReleaseEvent(evt) |
1344 self._mouseReleaseEvent(evt) |
|
1345 elif evt.type() == QEvent.MouseMove: |
|
1346 self._mouseMoveEvent(evt) |
1325 elif evt.type() == QEvent.Wheel: |
1347 elif evt.type() == QEvent.Wheel: |
1326 self._wheelEvent(evt) |
1348 self._wheelEvent(evt) |
1327 elif evt.type() == QEvent.Gesture: |
1349 elif evt.type() == QEvent.Gesture: |
1328 self._gestureEvent(evt) |
1350 self._gestureEvent(evt) |
1329 ret = evt.isAccepted() |
1351 ret = evt.isAccepted() |
1337 QEvent.MouseButtonRelease, |
1359 QEvent.MouseButtonRelease, |
1338 QEvent.Wheel, QEvent.Gesture]: |
1360 QEvent.Wheel, QEvent.Gesture]: |
1339 return True |
1361 return True |
1340 |
1362 |
1341 return super(WebBrowserView, self).eventFilter(obj, evt) |
1363 return super(WebBrowserView, self).eventFilter(obj, evt) |
|
1364 |
|
1365 def inputWidget(self): |
|
1366 """ |
|
1367 Public method to get a reference to the render widget. |
|
1368 |
|
1369 @return reference to the render widget |
|
1370 @rtype QWidget |
|
1371 """ |
|
1372 return self.__rwhvqt |
1342 |
1373 |
1343 def clearHistory(self): |
1374 def clearHistory(self): |
1344 """ |
1375 """ |
1345 Public slot to clear the history. |
1376 Public slot to clear the history. |
1346 """ |
1377 """ |