WebBrowser/WebBrowserView.py

changeset 4958
ef400197e7d5
parent 4956
1496516b0f2c
child 5001
08eaee907686
equal deleted inserted replaced
4957:55c9bb589b0a 4958:ef400197e7d5
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"),
985 983
986 def __blockImage(self): 984 def __blockImage(self):
987 """ 985 """
988 Private slot to add a block rule for an image URL. 986 Private slot to add a block rule for an image URL.
989 """ 987 """
990 from WebBrowser.WebBrowserWindow import WebBrowserWindow
991 act = self.sender() 988 act = self.sender()
992 url = act.data() 989 url = act.data()
993 dlg = WebBrowserWindow.adBlockManager().showDialog() 990 dlg = WebBrowserWindow.adBlockManager().showDialog()
994 dlg.addCustomRule(url) 991 dlg.addCustomRule(url)
995 992
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 """

eric ide

mercurial