Browse Source

wxGUI: fix georect (https://trac.osgeo.org/grass/ticket/728)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@41197 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 15 years ago
parent
commit
b0fcf54498

+ 2 - 0
gui/wxpython/gui_modules/georect.py

@@ -194,6 +194,7 @@ class GeorectWizard(object):
             self.xy_mapdisp.SetTitle(_("GRASS GIS Map Display: 1" +
                                        " - Location: " + self.newlocation +
                                        " (source location)"))
+            self.xy_mapdisp.SetName("GRMapWindow")
 
             self.gcpmgr.SetMapDisplay(self.xy_mapdisp)
             
@@ -209,6 +210,7 @@ class GeorectWizard(object):
             #
             # show new display & draw map
             #
+            self.xy_mapdisp.toolbars['georect'].OnZoomMap(None)
             self.xy_mapdisp.CenterOnScreen()
             self.xy_mapdisp.Show()
             self.gcpmgr.Centre()

+ 4 - 1
gui/wxpython/gui_modules/mapdisp_window.py

@@ -2561,7 +2561,10 @@ class BufferedWindow(MapWindow, wx.Window):
                       (self.zoomhistory))
         
         if len(self.zoomhistory) > 1:
-            self.parent.toolbars['map'].Enable('zoomback')
+            if self.parent.GetName() == 'MapWindow':
+                self.parent.toolbars['map'].Enable('zoomback')
+            else:
+                self.parent.toolbars['georect'].Enable('zoomback')
         
         return removed
 

+ 27 - 17
gui/wxpython/gui_modules/toolbars.py

@@ -46,6 +46,8 @@ class AbstractToolbar(wx.ToolBar):
     def __init__(self, parent):
         self.parent = parent
         wx.ToolBar.__init__(self, parent = self.parent, id = wx.ID_ANY)
+    
+        self.action = dict()
         
         self.Bind(wx.EVT_TOOL, self.OnTool)
         
@@ -138,6 +140,19 @@ class AbstractToolbar(wx.ToolBar):
         if platform.system() == 'Windows':
             size = self.GetBestSize()
             self.SetSize((size[0] + width, size[1]))
+
+    def Enable(self, tool, enable = True):
+        """!Enable defined tool
+        
+        @param tool name
+        @param enable True to enable otherwise disable tool
+        """
+        try:
+            id = getattr(self, tool)
+        except AttributeError:
+            return
+        
+        self.EnableTool(id, enable)
         
 class MapToolbar(AbstractToolbar):
     """!Map Display toolbar
@@ -168,10 +183,10 @@ class MapToolbar(AbstractToolbar):
         self.combo.Hide()
         self.combo.Show()
         
-        # default action
         self.action = { 'id' : self.pointer }
         self.defaultAction = { 'id' : self.pointer,
                                'bind' : self.parent.OnPointer }
+        
         self.OnTool(None)
         
         self.EnableTool(self.zoomback, False)
@@ -286,19 +301,6 @@ class MapToolbar(AbstractToolbar):
                      self.printmap):
             self.EnableTool(tool, enabled)
         
-    def Enable(self, tool, enable = True):
-        """!Enable defined tool
-        
-        @param tool name
-        @param enable True to enable otherwise disable tool
-        """
-        try:
-            id = getattr(self, tool)
-        except AttributeError:
-            return
-        
-        self.EnableTool(self.zoomback, enable)
-
 class GRToolbar(AbstractToolbar):
     """
     Georectification toolbar
@@ -310,7 +312,7 @@ class GRToolbar(AbstractToolbar):
         @param parent reference to MapFrame
         @param mapcontent reference to render.Map (registred by MapFrame)
         """
-        self.mapcontent = map
+        self.mapcontent = mapcontent
         AbstractToolbar.__init__(self, parent)
         
         self.InitToolbar(self.ToolbarData())
@@ -318,6 +320,14 @@ class GRToolbar(AbstractToolbar):
         # realize the toolbar
         self.Realize()
         
+        self.action = { 'id' : self.gcpset }
+        self.defaultAction = { 'id' : self.gcpset,
+                               'bind' : self.parent.OnPointer }
+        
+        self.OnTool(None)
+        
+        self.EnableTool(self.zoomback, False)
+        
     def ToolbarData(self):
         """!Toolbar data"""
         self.displaymap = wx.NewId()
@@ -365,8 +375,8 @@ class GRToolbar(AbstractToolbar):
     def OnZoomMap(self, event):
         """!Zoom to selected map"""
         self.parent.MapWindow.ZoomToMap(layers = self.mapcontent.GetListOfLayers())
-        
-        event.Skip()
+        if event:
+            event.Skip()
         
 class GCPToolbar(AbstractToolbar):
     """!