Bläddra i källkod

wxGUI/mapwindow: removing direct StatusbarUpdate calls from mapwindow, replaced by zoomChanged signal (statusbar text partialy broken, temporarily)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@57101 15284696-431f-4ddb-bdfa-cd5b030d7da7
Vaclav Petras 11 år sedan
förälder
incheckning
24cd145499

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

@@ -242,6 +242,7 @@ class MapFrameBase(wx.Frame):
        
     def StatusbarUpdate(self):
         """!Update statusbar content"""
+        Debug.msg(5, "MapFrameBase.StatusbarUpdate()")
         self.statusbarManager.Update()
         
     def IsAutoRendered(self):

+ 1 - 0
gui/wxpython/gui_core/toolbars.py

@@ -205,6 +205,7 @@ class BaseToolbar(wx.ToolBar):
         try:
             id = getattr(self, tool)
         except AttributeError:
+            # this should raise an error
             return
         
         self.EnableTool(id, enable)

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

@@ -165,6 +165,7 @@ class MapFrame(SingleMapFrame):
         self.MapWindow2D.mouseHandlerUnregistered.connect(self.ResetPointer)
 
         self.MapWindow2D.InitZoomHistory()
+        self.MapWindow2D.zoomChanged.connect(self.StatusbarUpdate)
 
         self._giface.updateMap.connect(self.MapWindow2D.UpdateMap)
         # default is 2D display mode
@@ -1352,4 +1353,6 @@ class MapFrame(SingleMapFrame):
         bar = self.statusbarManager.GetProgressBar()
         bar.SetRange(range)
         bar.SetValue(value)
-        self.SetStatusText(text)
+        # minimalize the damage in the status bar text
+        if text:
+            self.SetStatusText(text)

+ 9 - 24
gui/wxpython/mapdisp/mapwindow.py

@@ -1072,10 +1072,7 @@ class BufferedWindow(MapWindow, wx.Window):
         
         # redraw map
         self.UpdateMap()
-        
-        # update statusbar
-        self.frame.StatusbarUpdate()
-        
+
         self.Refresh()
         self.processMouse = True
         
@@ -1186,10 +1183,7 @@ class BufferedWindow(MapWindow, wx.Window):
 
             # redraw map
             self.UpdateMap(render = True)
-            
-            # update statusbar
-            self.frame.StatusbarUpdate()
-            
+
         elif self.mouse["use"] == "query":
             self.mapQueried.emit(x=self.mouse['end'][0], y=self.mouse['end'][1])
 
@@ -1324,10 +1318,7 @@ class BufferedWindow(MapWindow, wx.Window):
         
         # redraw map
         self.UpdateMap(render = True)
-        
-        # update statusbar
-        self.frame.StatusbarUpdate()
-        
+
     def OnMouseEnter(self, event):
         """!Mouse entered window and no mouse buttons were pressed
         """
@@ -1527,9 +1518,6 @@ class BufferedWindow(MapWindow, wx.Window):
                            update = True)
         # update map
         self.UpdateMap()
-        
-        # update statusbar
-        self.frame.StatusbarUpdate()
 
         self.zoomChanged.emit()
 
@@ -1540,6 +1528,10 @@ class BufferedWindow(MapWindow, wx.Window):
         Emits zoomHistoryAvailable signal when stack is not empty.
         Emits zoomHistoryUnavailable signal when stack is empty.
 
+        All methods which are changing zoom should call this method
+        to make a record in the history. The signal zoomChanged will be
+        then emitted automatically.
+
         @param n,s,e,w north, south, east, west
 
         @return removed history item if exists (or None)
@@ -1637,9 +1629,7 @@ class BufferedWindow(MapWindow, wx.Window):
         
         if render:
             self.UpdateMap()
-        
-        self.frame.StatusbarUpdate()
-        
+
     def ZoomToWind(self):
         """!Set display geometry to match computational region
         settings (set with g.region)
@@ -1650,8 +1640,6 @@ class BufferedWindow(MapWindow, wx.Window):
                          self.Map.region['e'], self.Map.region['w'])
         
         self.UpdateMap()
-        
-        self.frame.StatusbarUpdate()
 
     def ZoomToDefault(self):
         """!Set display geometry to match default region settings
@@ -1663,10 +1651,7 @@ class BufferedWindow(MapWindow, wx.Window):
                          self.Map.region['e'], self.Map.region['w'])
         
         self.UpdateMap()
-        
-        self.frame.StatusbarUpdate()
-    
-    
+
     def GoTo(self, e, n):
         region = self.Map.GetCurrentRegion()