瀏覽代碼

wxGUI: fix overlays
(merge from devbr6, https://trac.osgeo.org/grass/changeset/36500)


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

Martin Landa 16 年之前
父節點
當前提交
7b6dfd16a4
共有 1 個文件被更改,包括 22 次插入16 次删除
  1. 22 16
      gui/wxpython/gui_modules/render.py

+ 22 - 16
gui/wxpython/gui_modules/render.py

@@ -126,11 +126,11 @@ class Layer(object):
         #
         # prepare command for each layer
         #
-        layertypes = ['raster', 'rgb', 'his', 'shaded', 'rastarrow', 'rastnum',
+        layertypes = ('raster', 'rgb', 'his', 'shaded', 'rastarrow', 'rastnum',
                       'vector','thememap','themechart',
                       'grid', 'geodesic', 'rhumb', 'labels',
                       'command',
-                      'overlay']
+                      'overlay')
         
         if self.type not in layertypes:
             raise gcmd.GStdError(_("<%(name)s>: layer type <%(type)s> is not supported yet.") % \
@@ -1210,8 +1210,7 @@ class Map(object):
 
         return self.overlays[-1]
 
-    def ChangeOverlay(self, id, type, command,
-                      l_active=True, l_hidden=False, l_opacity=1, l_render=False):
+    def ChangeOverlay(self, id, render=False, **kargs):
         """
         Change overlay properities
 
@@ -1228,20 +1227,27 @@ class Map(object):
         """
         overlay = self.GetOverlay(id, list=False)
         if  overlay is None:
-            overlay = Overlay(id, type, command,
-                              l_active, l_hidden, l_opacity)
-        else:
-            overlay.id = id
-            overlay.name = type
-            overlay.cmdlist = command
-            overlay.active = l_active
-            overlay.hidden = l_hidden
-            overlay.opacity = l_opacity
-
-        if l_render and command != [] and not overlay.Render():
+            overlay = Overlay(id, type = None, cmd = None)
+        
+        if kargs.has_key('type'):
+            overlay.SetName(kargs['type']) # type -> overlay
+        
+        if kargs.has_key('command'):
+            overlay.SetCmd(kargs['command'])
+        
+        if kargs.has_key('active'):
+            overlay.SetActive(kargs['active'])
+
+        if kargs.has_key('hidden'):
+            overlay.SetHidden(kargs['hidden'])
+
+        if kargs.has_key('opacity'):
+            overlay.SetOpacity(kargs['opacity'])
+        
+        if render and command != [] and not overlay.Render():
             raise gcmd.GException(_("Unable render overlay <%s>") % 
                                   (name))
-
+        
         return overlay
 
     def GetOverlay(self, id, list=False):