[GRASS-SVN] r32432 - grass/trunk/gui/wxpython/gui_modules

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Jul 31 17:12:21 EDT 2008


Author: martinl
Date: 2008-07-31 17:12:21 -0400 (Thu, 31 Jul 2008)
New Revision: 32432

Modified:
   grass/trunk/gui/wxpython/gui_modules/histogram.py
   grass/trunk/gui/wxpython/gui_modules/render.py
   grass/trunk/gui/wxpython/gui_modules/wxgui_utils.py
Log:
wxGUI: change map layer properties clean up


Modified: grass/trunk/gui/wxpython/gui_modules/histogram.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/histogram.py	2008-07-31 21:03:16 UTC (rev 32431)
+++ grass/trunk/gui/wxpython/gui_modules/histogram.py	2008-07-31 21:12:21 UTC (rev 32432)
@@ -335,7 +335,7 @@
         #
         # Add layer to the map
         #
-        self.layer = self.Map.AddLayer(type="command", name='', command=['d.histogram'],
+        self.layer = self.Map.AddLayer(type="command", name='histogram', command=['d.histogram'],
                                        l_active=False, l_hidden=False, l_opacity=1, l_render=False)
 
 
@@ -403,9 +403,7 @@
         """
         self.mapname = utils.GetLayerNameFromCmd(cmd)
 
-        self.layer = self.Map.ChangeLayer(layer=self.layer, type="command", name='histogram',
-                                          command=cmd,
-                                          l_active=True, l_hidden=False, l_opacity=1.0)
+        self.layer = self.Map.ChangeLayer(layer=self.layer, command=cmd, active=True)
 
         return self.layer
 

Modified: grass/trunk/gui/wxpython/gui_modules/render.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/render.py	2008-07-31 21:03:16 UTC (rev 32431)
+++ grass/trunk/gui/wxpython/gui_modules/render.py	2008-07-31 21:12:21 UTC (rev 32432)
@@ -193,10 +193,38 @@
         """Check if layer is activated for rendering"""
         return self.active
 
+    def SetType(self, type):
+        """Set layer type"""
+        if type not in ('raster', 'vector', 'overlay', 'command'):
+            raise gcmd.GStdError(_("Unsupported map layer type '%s'") % str(type))
+        
+        self.type = type
+
+    def SetName(self, name):
+        """Set layer name"""
+        self.name = name
+
+    def SetCmd(self, cmd):
+        """Set layer name"""
+        self.cmdlist = cmd
+
     def SetActive(self, enable=True):
         """Active or deactive layer"""
-        self.active = enable
+        self.active = bool(enable)
 
+    def SetHidden(self, enable=False):
+        """Hide or show map layer in Layer Manager"""
+        self.hidden = bool(enable)
+
+    def SetOpacity(self, value):
+        """Set opacity value"""
+        if value < 0:
+            value = 0.
+        elif value > 1:
+            value = 1.
+        
+        self.opacity = float(value)
+        
     def SetCmd(self, cmd):
         """Set new command for layer"""
         self.cmdlist = cmd
@@ -915,40 +943,45 @@
         Debug.msg (4, "Map.ReoderLayers(): layers=%s" % \
                    (layerNameList))
 
-    def ChangeLayer(self, layer, type, command, name=None,
-                    l_active=True, l_hidden=False, l_opacity=1, l_render=False):
+    def ChangeLayer(self, layer, render=False, **kargs):
         """
-        Change layer properties
+        Change map layer properties
 
+        @param layer map layer instance
         @param type layer type ('raster', 'vector', etc.)
         @param command  GRASS command given as list
         @param name layer name
-        @param l_active layer render only if True
-        @param l_hidden layer not displayed in layer tree if True
-        @param l_opacity opacity level range from 0(transparent) - 1(not transparent)
-        @param l_render render an image if True
+        @param active layer render only if True
+        @param hidden layer not displayed in layer tree if True
+        @param opacity opacity level range from 0(transparent) - 1(not transparent)
+        @param render render an image if True
         """
 
-        # l_opacity must be <0;1>
-        if l_opacity < 0: l_opacity = 0
-        elif l_opacity > 1: l_opacity = 1
+        Debug.msg (3, "Map.ChangeLayer(): layer=%s" % layer.name)
 
-        Debug.msg (3, "Map.ChangeLayer():")
+        if kargs.has_key('type'):
+            layer.SetType(kargs['type']) # check type
 
-        newlayer = MapLayer(type=type, cmd=command, name=name,
-                            active=l_active, hidden=l_hidden, opacity=l_opacity)
+        if kargs.has_key('command'):
+            layer.SetCmd(kargs['command'])
+            
+        if kargs.has_key('name'):
+            layer.SetName(kargs['name'])
 
-        oldlayerindex = self.layers.index(layer)
+        if kargs.has_key('active'):
+            layer.SetActive(kargs['active'])
 
-        # add maplayer to the list of layers
-        if layer:
-            self.layers[oldlayerindex] = newlayer
+        if kargs.has_key('hidden'):
+            layer.SetHidden(kargs['hidden'])
 
-        if l_render and not layer.Render():
+        if kargs.has_key('opacity'):
+            layer.SetOpacity(kargs['opacity'])
+            
+        if render and not layer.Render():
             raise gcmd.GException(_("Unable to render map layer <%s>.") % 
                                   (name))
 
-        return self.layers[-1]
+        return layer
 
     def ChangeOpacity(self, layer, l_opacity):
         """

Modified: grass/trunk/gui/wxpython/gui_modules/wxgui_utils.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/wxgui_utils.py	2008-07-31 21:03:16 UTC (rev 32431)
+++ grass/trunk/gui/wxpython/gui_modules/wxgui_utils.py	2008-07-31 21:12:21 UTC (rev 32432)
@@ -1226,12 +1226,11 @@
                 opac = self.GetPyData(item)[0]['maplayer'].GetOpacity(float=True)
                 chk = self.IsItemChecked(item)
                 hidden = not self.IsVisible(item)
-        maplayer = self.Map.ChangeLayer(layer=self.GetPyData(item)[0]['maplayer'], type=type,
-                                        command=cmdlist, name=self.GetItemText(item),
-                                        l_active=chk, l_hidden=hidden, l_opacity=opac, l_render=False)
 
-        self.GetPyData(item)[0]['maplayer'] = maplayer
-
+        self.Map.ChangeLayer(layer=self.GetPyData(item)[0]['maplayer'],
+                             command=cmdlist, name=self.GetItemText(item),
+                             active=chk, l_hidden=hidden, l_opacity=opac)
+        
         # if digitization tool enabled -> update list of available vector map layers
         if self.mapdisplay.toolbars['vdigit']:
             self.mapdisplay.toolbars['vdigit'].UpdateListOfLayers(updateTool=True)



More information about the grass-commit mailing list