QScintilla/Editor.py

changeset 1518
e6e21910210d
parent 1509
c0b5e693b0eb
child 1565
815eb7a39944
child 1566
0cb791cc631a
--- a/QScintilla/Editor.py	Fri Dec 30 15:20:34 2011 +0100
+++ b/QScintilla/Editor.py	Fri Dec 30 18:33:18 2011 +0100
@@ -410,6 +410,8 @@
         
         # create the online syntax check timer
         self.__initOnlineSyntaxCheck()
+        
+        self.grabGesture(Qt.PinchGesture)
     
     def __registerImages(self):
         """
@@ -5420,6 +5422,41 @@
         
         super().wheelEvent(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:
+                zoom = (self.getZoom() + 10) / 10.0
+                pinch.setScaleFactor(zoom)
+            else:
+                zoom = int(pinch.scaleFactor() * 10) - 10
+                if zoom <= -9:
+                    zoom = -9
+                    pinch.setScaleFactor(0.1)
+                elif zoom >= 20:
+                    zoom = 20
+                    pinch.setScaleFactor(3.0)
+                self.zoomTo(zoom)
+            evt.accept()
+    
     def __updateReadOnly(self, bForce=True):
         """
         Private method to update the readOnly information for this editor.

eric ide

mercurial