Browse Source

wxGUI: fix bug in layering and rendering, update https://trac.osgeo.org/grass/changeset/32831
code removed from https://trac.osgeo.org/grass/changeset/32465 recovered
(merge from devbr6, https://trac.osgeo.org/grass/changeset/32839)


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@32840 15284696-431f-4ddb-bdfa-cd5b030d7da7

Martin Landa 17 years ago
parent
commit
5fb47c553d
2 changed files with 18 additions and 4 deletions
  1. 0 2
      gui/wxpython/gui_modules/mapdisp.py
  2. 18 2
      gui/wxpython/gui_modules/wxgui_utils.py

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

@@ -644,8 +644,6 @@ class BufferedWindow(MapWindow, wx.Window):
         # render background image if needed
         # render background image if needed
         #
         #
         if render:
         if render:
-            # walk layer tree and update current layers
-            self.tree.ReorderLayers()
             # update display size
             # update display size
             self.Map.ChangeMapSize(self.GetClientSize())
             self.Map.ChangeMapSize(self.GetClientSize())
             windres = False
             windres = False

+ 18 - 2
gui/wxpython/gui_modules/wxgui_utils.py

@@ -496,7 +496,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
         """Rename layer"""
         """Rename layer"""
         self.EditLabel(self.layer_selected)
         self.EditLabel(self.layer_selected)
 
 
-    def AddLayer(self, ltype, lname=None, lchecked=None, \
+    def AddLayer(self, ltype, lname=None, lchecked=None,
                  lopacity=None, lcmd=None, lgroup=None, lnviz=None):
                  lopacity=None, lcmd=None, lgroup=None, lnviz=None):
         """Add new item to the layer tree, create corresponding MapLayer instance.
         """Add new item to the layer tree, create corresponding MapLayer instance.
         Launch property dialog if needed (raster, vector, etc.)
         Launch property dialog if needed (raster, vector, etc.)
@@ -658,7 +658,23 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
                                     'propwin' : None}, 
                                     'propwin' : None}, 
                                    None))
                                    None))
 
 
-            maplayer = self.Map.AddLayer(type=ltype, command=self.GetPyData(layer)[0]['cmd'], name=name,
+            # find previous map layer instance 
+            prevItem = self.GetFirstChild(self.root)[0]
+            prevMapLayer = None 
+            pos = -1
+            while prevItem and prevItem.IsOk() and prevItem != layer: 
+                if self.GetPyData(prevItem)[0]['maplayer']: 
+                    prevMapLayer = self.GetPyData(prevItem)[0]['maplayer'] 
+                
+                prevItem = self.GetNextSibling(prevItem) 
+                
+                if prevMapLayer: 
+                    pos = self.Map.GetLayerIndex(prevMapLayer)
+                else: 
+                    pos = -1
+            
+            maplayer = self.Map.AddLayer(pos=pos,
+                                         type=ltype, command=self.GetPyData(layer)[0]['cmd'], name=name,
                                          l_active=checked, l_hidden=False,
                                          l_active=checked, l_hidden=False,
                                          l_opacity=opacity, l_render=render)
                                          l_opacity=opacity, l_render=render)
             self.GetPyData(layer)[0]['maplayer'] = maplayer
             self.GetPyData(layer)[0]['maplayer'] = maplayer