WebBrowser/WebBrowserView.py

changeset 4958
ef400197e7d5
parent 4956
1496516b0f2c
child 5001
08eaee907686
--- a/WebBrowser/WebBrowserView.py	Sat Apr 30 13:07:13 2016 +0200
+++ b/WebBrowser/WebBrowserView.py	Sat Apr 30 20:01:30 2016 +0200
@@ -23,6 +23,7 @@
 
 from E5Gui import E5MessageBox
 
+from WebBrowser.WebBrowserWindow import WebBrowserWindow
 from .WebBrowserPage import WebBrowserPage
 
 from .Tools.WebIconLoader import WebIconLoader
@@ -76,7 +77,6 @@
         self.__rwhvqt = None
         self.installEventFilter(self)
         
-        from WebBrowser.WebBrowserWindow import WebBrowserWindow
         self.__speedDial = WebBrowserWindow.speedDial()
         
         self.__page = WebBrowserPage(self)
@@ -578,8 +578,6 @@
         @param hitTest reference to the hit test object
         @type WebHitTestResult
         """
-        from WebBrowser.WebBrowserWindow import WebBrowserWindow
-        
         if not menu.isEmpty():
             menu.addSeparator()
         
@@ -987,7 +985,6 @@
         """
         Private slot to add a block rule for an image URL.
         """
-        from WebBrowser.WebBrowserWindow import WebBrowserWindow
         act = self.sender()
         url = act.data()
         dlg = WebBrowserWindow.adBlockManager().showDialog()
@@ -1173,13 +1170,19 @@
         
         @param evt reference to the mouse event (QMouseEvent)
         """
+        if WebBrowserWindow.autoScroller().mousePress(self, evt):
+            evt.accept()
+            return
+        
         self.__mw.setEventMouseButtons(evt.buttons())
         self.__mw.setEventKeyboardModifiers(evt.modifiers())
         
         if evt.button() == Qt.XButton1:
             self.pageAction(QWebEnginePage.Back).trigger()
+            evt.accept()
         elif evt.button() == Qt.XButton2:
             self.pageAction(QWebEnginePage.Forward).trigger()
+            evt.accept()
         else:
             super(WebBrowserView, self).mousePressEvent(evt)
     
@@ -1189,6 +1192,10 @@
         
         @param evt reference to the mouse event (QMouseEvent)
         """
+        if WebBrowserWindow.autoScroller().mouseRelease(evt):
+            evt.accept()
+            return
+        
         accepted = evt.isAccepted()
         self.__page.event(evt)
         if not evt.isAccepted() and \
@@ -1202,12 +1209,25 @@
                 self.setSource(url)
         evt.setAccepted(accepted)
     
+    def _mouseMoveEvent(self, evt):
+        """
+        Protected method to handle mouse move events.
+        
+        @param evt reference to the mouse event (QMouseEvent)
+        """
+        if WebBrowserWindow.autoScroller().mouseMove(evt):
+            evt.accept()
+    
     def _wheelEvent(self, evt):
         """
         Protected method to handle wheel events.
         
         @param evt reference to the wheel event (QWheelEvent)
         """
+        if WebBrowserWindow.autoScroller().wheel():
+            evt.accept()
+            return
+        
         delta = evt.angleDelta().y()
         if evt.modifiers() & Qt.ControlModifier:
             if delta < 0:
@@ -1322,6 +1342,8 @@
                 self._mousePressEvent(evt)
             elif evt.type() == QEvent.MouseButtonRelease:
                 self._mouseReleaseEvent(evt)
+            elif evt.type() == QEvent.MouseMove:
+                self._mouseMoveEvent(evt)
             elif evt.type() == QEvent.Wheel:
                 self._wheelEvent(evt)
             elif evt.type() == QEvent.Gesture:
@@ -1340,6 +1362,15 @@
         
         return super(WebBrowserView, self).eventFilter(obj, evt)
     
+    def inputWidget(self):
+        """
+        Public method to get a reference to the render widget.
+        
+        @return reference to the render widget
+        @rtype QWidget
+        """
+        return self.__rwhvqt
+    
     def clearHistory(self):
         """
         Public slot to clear the history.

eric ide

mercurial