Bläddra i källkod

wxGUI: fix ending measuring on display

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@58609 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 11 år sedan
förälder
incheckning
eb90184e8c
2 ändrade filer med 5 tillägg och 0 borttagningar
  1. 1 0
      gui/wxpython/mapdisp/frame.py
  2. 4 0
      gui/wxpython/mapwin/analysis.py

+ 1 - 0
gui/wxpython/mapdisp/frame.py

@@ -858,6 +858,7 @@ class MapFrame(SingleMapFrame):
         if not self.measureDistController:
             self.measureDistController = MeasureDistanceController(self._giface,
                                                                    mapWindow=self.GetMapWindow())
+            self._toolSwitcher.toggleToolChanged.connect(lambda: self.measureDistController.Stop())
         self.measureDistController.Start()
 
     def OnProfile(self, event):

+ 4 - 0
gui/wxpython/mapwin/analysis.py

@@ -205,6 +205,8 @@ class MeasureDistanceController(AnalysisControllerBase):
         return wx.Pen(colour='green', width=2, style=wx.SHORT_DASH)
 
     def Stop(self, restore=True):
+        if not self.IsActive():
+            return
         AnalysisControllerBase.Stop(self, restore=restore)
 
         self._giface.WriteCmdLog(_('Measuring finished'))
@@ -213,6 +215,8 @@ class MeasureDistanceController(AnalysisControllerBase):
         """!Init measurement routine that calculates map distance
         along transect drawn on map display
         """
+        if self.IsActive():
+            return
         AnalysisControllerBase.Start(self)
         self._totaldist = 0.0  # total measured distance