eric7/HelpViewer/HelpViewerImpl_qtb.py

branch
eric7
changeset 8681
6285e8374d99
parent 8680
85503ff2fce9
child 8683
e8a907801549
diff -r 85503ff2fce9 -r 6285e8374d99 eric7/HelpViewer/HelpViewerImpl_qtb.py
--- a/eric7/HelpViewer/HelpViewerImpl_qtb.py	Mon Oct 11 19:59:45 2021 +0200
+++ b/eric7/HelpViewer/HelpViewerImpl_qtb.py	Tue Oct 12 19:54:03 2021 +0200
@@ -30,6 +30,8 @@
         QTextBrowser.__init__(self,  parent=parent)
         HelpViewerImpl.__init__(self, engine)
         
+        self.__zoomCount = 0
+        
         self.sourceChanged.connect(self.titleChanged)
     
     def setUrl(self, url):
@@ -123,3 +125,76 @@
             # forward
             for ind in range(index):
                 self.forward()
+    
+    def scaleUp(self):
+        """
+        Public method to zoom in.
+        """
+        if self.__zoomCount < 10:
+            self.__zoomCount += 1
+            self.zoomIn()
+            self.zoomChanged.emit()
+    
+    def scaleDown(self):
+        """
+        Public method to zoom out.
+        """
+        if self.__zoomCount > -5:
+            self.__zoomCount -= 1
+            self.zoomOut()
+            self.zoomChanged.emit()
+    
+    def resetScale(self):
+        """
+        Public method to reset the zoom level.
+        """
+        if self.__zoomCount != 0:
+            self.zoomOut(self.__zoomCount)
+            self.zoomChanged.emit()
+        self.__zoomCount = 0
+    
+    def scale(self):
+        """
+        Public method to get the zoom level.
+        
+        @return current zoom level
+        @rtype int
+        """
+        return self.__zoomCount
+    
+    def isScaleUpAvailable(self):
+        """
+        Public method to check, if the max. zoom level is reached.
+        
+        @return flag indicating scale up is available
+        @rtype bool
+        """
+        return self.__zoomCount < 10
+    
+    def isScaleDownAvailable(self):
+        """
+        Public method to check, if the min. zoom level is reached.
+        
+        @return flag indicating scale down is available
+        @rtype bool
+        """
+        return self.__zoomCount > -5
+    
+    def wheelEvent(self, evt):
+        """
+        Public method to handle wheel event to zoom.
+        
+        @param evt reference to the event object
+        @type QWheelEvent
+        """
+        if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
+            if evt.angleDelta().y() > 0:
+                self.scaleUp()
+            else:
+                self.scaleDown()
+            evt.accept()
+        else:
+            QTextBrowser.wheelEvent(self, evt)
+    
+    # TODO: implement context menu 
+    # TODO: add Ctrl+LMB action (open link in new page)

eric ide

mercurial