소스 검색

cmbarton: Fine tuning layer management and auto-render for better panning and resizing.
(merge from devbr6, https://trac.osgeo.org/grass/changeset/32894, https://trac.osgeo.org/grass/changeset/32895, https://trac.osgeo.org/grass/changeset/32896)


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

Martin Landa 16 년 전
부모
커밋
04d7eefee5
2개의 변경된 파일14개의 추가작업 그리고 3개의 파일을 삭제
  1. 6 1
      gui/wxpython/gui_modules/mapdisp.py
  2. 8 2
      gui/wxpython/gui_modules/wxgui_utils.py

+ 6 - 1
gui/wxpython/gui_modules/mapdisp.py

@@ -642,8 +642,13 @@ class BufferedWindow(MapWindow, wx.Window):
         # render background image if needed
         # render background image if needed
         #
         #
         
         
-        if self.tree.rerender == True:
+        # update layer dictionary if there has been a change in layers
+        if self.tree.reorder == True:
             self.tree.ReorderLayers()
             self.tree.ReorderLayers()
+            
+        # reset flag for auto-rendering
+        self.tree.rerender = False
+            
         if render:
         if render:
             # update display size
             # update display size
             self.Map.ChangeMapSize(self.GetClientSize())
             self.Map.ChangeMapSize(self.GetClientSize())

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

@@ -91,7 +91,8 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
         self.notebook = kargs['notebook']   # GIS Manager notebook for layer tree
         self.notebook = kargs['notebook']   # GIS Manager notebook for layer tree
         self.treepg = parent        # notebook page holding layer tree
         self.treepg = parent        # notebook page holding layer tree
         self.auimgr = kargs['auimgr']       # aui manager
         self.auimgr = kargs['auimgr']       # aui manager
-        self.rerender = False       # layer change requires a reordering and rerendering (if auto render)
+        self.rerender = False       # layer change requires a rerendering if auto render
+        self.reorder = False        # layer change requires a reordering
 
 
         # init associated map display
         # init associated map display
         self.mapdisplay = mapdisp.MapFrame(self,
         self.mapdisplay = mapdisp.MapFrame(self,
@@ -199,7 +200,6 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
         if self.rerender:
         if self.rerender:
             if self.mapdisplay.autoRender.GetValue():
             if self.mapdisplay.autoRender.GetValue():
                 self.mapdisplay.MapWindow.UpdateMap(render=True)
                 self.mapdisplay.MapWindow.UpdateMap(render=True)
-            self.rerender = False
 
 
         event.Skip()
         event.Skip()
 
 
@@ -495,6 +495,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
             
             
             # redraw map if auto-rendering is enabled
             # redraw map if auto-rendering is enabled
             self.rerender = True
             self.rerender = True
+            self.reorder = True
             #if self.mapdisplay.autoRender.GetValue():
             #if self.mapdisplay.autoRender.GetValue():
             #    print "*** Opacity OnRender *****"
             #    print "*** Opacity OnRender *****"
             #    self.mapdisplay.OnRender(None)
             #    self.mapdisplay.OnRender(None)
@@ -861,6 +862,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
 
 
         # redraw map if auto-rendering is enabled
         # redraw map if auto-rendering is enabled
         self.rerender = True
         self.rerender = True
+        self.reorder = True
         #if self.mapdisplay.autoRender.GetValue():
         #if self.mapdisplay.autoRender.GetValue():
         #    print "*** Delete OnRender *****"
         #    print "*** Delete OnRender *****"
         #    self.mapdisplay.OnRender(None)
         #    self.mapdisplay.OnRender(None)
@@ -938,6 +940,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
 
 
         # redraw map if auto-rendering is enabled
         # redraw map if auto-rendering is enabled
         self.rerender = True
         self.rerender = True
+        self.reorder = True
         #if self.mapdisplay.autoRender.GetValue():
         #if self.mapdisplay.autoRender.GetValue():
         #    print "*** Checked OnRender *****"
         #    print "*** Checked OnRender *****"
         #    self.mapdisplay.OnRender(None)
         #    self.mapdisplay.OnRender(None)
@@ -1073,6 +1076,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
 
 
         # redraw map if auto-rendering is enabled
         # redraw map if auto-rendering is enabled
         self.rerender = True
         self.rerender = True
+        self.reorder = True
         #if self.mapdisplay.autoRender.GetValue():
         #if self.mapdisplay.autoRender.GetValue():
         #    print "*** Drop OnRender *****"
         #    print "*** Drop OnRender *****"
         #    self.mapdisplay.OnRender(None)
         #    self.mapdisplay.OnRender(None)
@@ -1253,6 +1257,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
         # reorder map layers
         # reorder map layers
         treelayers.reverse()
         treelayers.reverse()
         self.Map.ReorderLayers(treelayers)
         self.Map.ReorderLayers(treelayers)
+        self.reorder = False
 
 
     def ChangeLayer(self, item):
     def ChangeLayer(self, item):
         """Change layer"""
         """Change layer"""
@@ -1288,6 +1293,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
 
 
         # redraw map if auto-rendering is enabled
         # redraw map if auto-rendering is enabled
         self.rerender = True
         self.rerender = True
+        self.reorder = True
         #if self.mapdisplay.autoRender.GetValue():
         #if self.mapdisplay.autoRender.GetValue():
         #    print "*** Change OnRender *****"
         #    print "*** Change OnRender *****"
         #    self.mapdisplay.OnRender(None)
         #    self.mapdisplay.OnRender(None)