Graphics/UMLGraphicsView.py

changeset 2334
fc69ad77e18a
parent 2302
f29e9405c851
child 2401
4f428de32b69
diff -r 9e623311630d -r fc69ad77e18a Graphics/UMLGraphicsView.py
--- a/Graphics/UMLGraphicsView.py	Thu Jan 10 19:15:10 2013 +0100
+++ b/Graphics/UMLGraphicsView.py	Sat Jan 12 18:44:39 2013 +0100
@@ -13,6 +13,7 @@
 from E5Graphics.E5GraphicsView import E5GraphicsView
 
 from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui.E5ZoomWidget import E5ZoomWidget
 
 from .UMLItem import UMLItem
 from .AssociationItem import AssociationItem
@@ -20,7 +21,6 @@
 from .ModuleItem import ModuleItem
 from .PackageItem import PackageItem
 from .UMLSceneSizeDialog import UMLSceneSizeDialog
-from .ZoomDialog import ZoomDialog
 
 import UI.Config
 import UI.PixmapCache
@@ -54,6 +54,15 @@
         self.border = 10
         self.deltaSize = 100.0
         
+        self.__zoomWidget = E5ZoomWidget(UI.PixmapCache.getPixmap("zoomOut.png"),
+            UI.PixmapCache.getPixmap("zoomIn.png"),
+            UI.PixmapCache.getPixmap("zoomReset.png"), self)
+        parent.statusBar().addPermanentWidget(self.__zoomWidget)
+        self.__zoomWidget.setMapping(
+            E5GraphicsView.ZoomLevels, E5GraphicsView.ZoomLevelDefault)
+        self.__zoomWidget.valueChanged.connect(self.setZoom)
+        self.zoomValueChanged.connect(self.__zoomWidget.setValue)
+        
         self.__initActions()
         
         scene.changed.connect(self.__sceneChanged)
@@ -72,26 +81,6 @@
                     self.trUtf8("Delete shapes"), self)
         self.deleteShapeAct.triggered[()].connect(self.__deleteShape)
         
-        self.zoomInAct = \
-            QAction(UI.PixmapCache.getIcon("zoomIn.png"),
-                    self.trUtf8("Zoom in"), self)
-        self.zoomInAct.triggered[()].connect(self.zoomIn)
-        
-        self.zoomOutAct = \
-            QAction(UI.PixmapCache.getIcon("zoomOut.png"),
-                    self.trUtf8("Zoom out"), self)
-        self.zoomOutAct.triggered[()].connect(self.zoomOut)
-        
-        self.zoomAct = \
-            QAction(UI.PixmapCache.getIcon("zoomTo.png"),
-                    self.trUtf8("Zoom..."), self)
-        self.zoomAct.triggered[()].connect(self.__zoom)
-        
-        self.zoomResetAct = \
-            QAction(UI.PixmapCache.getIcon("zoomReset.png"),
-                    self.trUtf8("Zoom reset"), self)
-        self.zoomResetAct.triggered[()].connect(self.zoomReset)
-        
         self.incWidthAct = \
             QAction(UI.PixmapCache.getIcon("sceneWidthInc.png"),
                     self.trUtf8("Increase width by {0} points").format(self.deltaSize),
@@ -217,11 +206,6 @@
         toolBar.setIconSize(UI.Config.ToolBarIconSize)
         toolBar.addAction(self.deleteShapeAct)
         toolBar.addSeparator()
-        toolBar.addAction(self.zoomInAct)
-        toolBar.addAction(self.zoomOutAct)
-        toolBar.addAction(self.zoomAct)
-        toolBar.addAction(self.zoomResetAct)
-        toolBar.addSeparator()
         toolBar.addAction(self.alignLeftAct)
         toolBar.addAction(self.alignHCenterAct)
         toolBar.addAction(self.alignRightAct)
@@ -466,15 +450,6 @@
         """
         super().printDiagram(printer, self.diagramName)
         
-    def __zoom(self):
-        """
-        Private method to handle the zoom context menu action.
-        """
-        dlg = ZoomDialog(self.zoom(), self)
-        if dlg.exec_() == QDialog.Accepted:
-            zoom = dlg.getZoomSize()
-            self.setZoom(zoom)
-        
     def setDiagramName(self, name):
         """
         Public slot to set the diagram name.
@@ -641,9 +616,9 @@
         pinch = evt.gesture(Qt.PinchGesture)
         if pinch:
             if pinch.state() == Qt.GestureStarted:
-                pinch.setScaleFactor(self.zoom())
+                pinch.setScaleFactor(self.zoom() / 100.0)
             else:
-                self.setZoom(pinch.scaleFactor())
+                self.setZoom(int(pinch.scaleFactor() * 100))
             evt.accept()
     
     def getItemId(self):

eric ide

mercurial