Преглед изворни кода

Fonction de zoom envoyee dans DmGraphicsView

unknown пре 10 година
родитељ
комит
3aafdc44d2
2 измењених фајлова са 20 додато и 21 уклоњено
  1. 1 21
      lib/Plateau.py
  2. 19 0
      lib/ui/dm.py

+ 1 - 21
lib/Plateau.py

@@ -70,7 +70,6 @@ class Plateau(QGraphicsScene):
         self.modeCombat = ""
         
         #interface
-        self.nbZoomActuel = 0
         self.epaisseurpinceau = 0
 
         #objets
@@ -99,7 +98,7 @@ class Plateau(QGraphicsScene):
     def __getstate__(self):
         self.dateSvg = time()
         state = {key:value for key, value in self.__dict__.items() if not key in ["fenetre", "modeActif", "listMode", "cacheEnCours", \
-                                                                                  "modeParam", "nbZoomActuel", "epaisseurPinceau", \
+                                                                                  "modeParam", "epaisseurPinceau", \
                                                                                   "editionTerrain", "editionCreature", "editionDecor", \
                                                                                   "polygoneZonePlacement", "gestionCombat", "polygonesCaches", \
                                                                                   "editionAttaques", "pinceau"]}
@@ -282,7 +281,6 @@ class Plateau(QGraphicsScene):
         self.setItemIndexMethod(QGraphicsScene.BspTreeIndex)
         
         #self.setItemIndexMethod(QGraphicsScene.NoIndex)
-        self.nbZoomActuel = 0
         self.epaisseurPinceau = 1
         self.polygoneZonePlacement = None
         self.polygonesCaches = {}
@@ -1603,24 +1601,6 @@ class Plateau(QGraphicsScene):
     ###############"
         
     ######### gestion des evenements souris et clavier ###############
-    def wheelEvent(self, event):
-        """zoom/dezoom avec la molette de la souris"""
-        #on zoom/dezoom et on recentre sur la position du curseur
-        #super (Plateau, self).wheelEvent(event)
-        zoom = 1.00
-        if event.delta() > 0:
-            if self.nbZoomActuel <= 10:
-                self.nbZoomActuel += 1
-                zoom = 1.25
-        elif event.delta() < 0:
-            if self.nbZoomActuel >= -10:
-                zoom = 0.8
-                self.nbZoomActuel -= 1 
-        if zoom != 0.00:
-           self.fenetre.ui.cbt_vue.scale(zoom, zoom)
-           self.fenetre.ui.cbt_vue.centerOn(event.scenePos())
-        event.accept() #pour considerer l'evenement comme resolu, sans ca les barres de defilement reagissent aussi  
-
     def mouseMoveEvent(self, event):
         super(Plateau, self).mouseMoveEvent(event)
         if event.buttons() == Qt.LeftButton and self.fenetre.ui.cbt_vue.dragMode() != QGraphicsView.ScrollHandDrag:

+ 19 - 0
lib/ui/dm.py

@@ -42,10 +42,29 @@ class DmGraphicsView(QGraphicsView):
     """surcharge de QGraphicsView"""
     def __init__(self, parent = None):
         super(DmGraphicsView, self).__init__(parent)
+        self.nbZoomActuel = 0
 
     def resizeEvent(self, event):
         super(DmGraphicsView, self).resizeEvent(event)
         self.emit(SIGNAL("resizeEvent()"))
+
+    def wheelEvent(self, event):
+        """zoom/dezoom avec la molette de la souris"""
+        #on zoom/dezoom et on recentre sur la position du curseur
+        zoom = 1.00
+        if event.delta() > 0:
+            if self.nbZoomActuel <= 10:
+                self.nbZoomActuel += 1
+                zoom = 1.25
+        elif event.delta() < 0:
+            if self.nbZoomActuel >= -10:
+                zoom = 0.8
+                self.nbZoomActuel -= 1 
+        if zoom != 0.00:
+           self.scale(zoom, zoom)
+           self.centerOn(self.mapToScene(event.pos()))
+        event.accept() #pour considerer l'evenement comme resolu, sans ca les barres de defilement reagissent aussi      
+
     
 class DmTableWidget(QTableWidget):
     """surcharge de QTableWidget"""