Helpviewer/HelpBrowserWV.py

changeset 1518
e6e21910210d
parent 1509
c0b5e693b0eb
child 1558
754120837dd8
child 1585
98c4345f856a
--- a/Helpviewer/HelpBrowserWV.py	Fri Dec 30 15:20:34 2011 +0100
+++ b/Helpviewer/HelpBrowserWV.py	Fri Dec 30 18:33:18 2011 +0100
@@ -460,6 +460,8 @@
             self.page().scrollRequested.connect(self.__hideAccessKeys)
         
         self.__rss = []
+        
+        self.grabGesture(Qt.PinchGesture)
     
     def __addExternalBinding(self, frame=None):
         """
@@ -740,30 +742,6 @@
         self.__currentZoom = 100
         self.__applyZoom()
     
-    def wheelEvent(self, evt):
-        """
-        Protected method to handle wheel events.
-        
-        @param evt reference to the wheel event (QWheelEvent)
-        """
-        if evt.modifiers() & Qt.ControlModifier:
-            degrees = evt.delta() // 8
-            steps = degrees // 15
-            self.__currentZoom += steps * 10
-            self.__applyZoom()
-            evt.accept()
-            return
-        
-        if evt.modifiers() & Qt.ShiftModifier:
-            if evt.delta() < 0:
-                self.backward()
-            else:
-                self.forward()
-            evt.accept()
-            return
-        
-        super().wheelEvent(evt)
-    
     def hasSelection(self):
         """
         Public method to determine, if there is some text selected.
@@ -1174,6 +1152,30 @@
                 self.setSource(url)
         evt.setAccepted(accepted)
     
+    def wheelEvent(self, evt):
+        """
+        Protected method to handle wheel events.
+        
+        @param evt reference to the wheel event (QWheelEvent)
+        """
+        if evt.modifiers() & Qt.ControlModifier:
+            degrees = evt.delta() // 8
+            steps = degrees // 15
+            self.__currentZoom += steps * 10
+            self.__applyZoom()
+            evt.accept()
+            return
+        
+        if evt.modifiers() & Qt.ShiftModifier:
+            if evt.delta() < 0:
+                self.backward()
+            else:
+                self.forward()
+            evt.accept()
+            return
+        
+        super().wheelEvent(evt)
+    
     def keyPressEvent(self, evt):
         """
         Protected method called by a key press.
@@ -1223,6 +1225,35 @@
         
         super().focusOutEvent(evt)
     
+    def event(self, evt):
+        """
+        Protected method handling events.
+        
+        @param evt reference to the event (QEvent)
+        @return flag indicating, if the event was handled (boolean)
+        """
+        if evt.type() == QEvent.Gesture:
+            self.gestureEvent(evt)
+            return True
+        
+        return super().event(evt)
+    
+    def gestureEvent(self, evt):
+        """
+        Protected method handling gesture events.
+        
+        @param evt reference to the gesture event (QGestureEvent
+        """
+        pinch = evt.gesture(Qt.PinchGesture)
+        if pinch:
+            if pinch.state() == Qt.GestureStarted:
+                pinch.setScaleFactor(self.__currentZoom / 100.0)
+            else:
+                scaleFactor = pinch.scaleFactor()
+                self.__currentZoom = int(scaleFactor * 100)
+                self.__applyZoom()
+            evt.accept()
+    
     def clearHistory(self):
         """
         Public slot to clear the history.

eric ide

mercurial