--- 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.