Jelajahi Sumber

wxGUI/vector legend: add legend entry for vector only

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@69198 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 8 tahun lalu
induk
melakukan
5c8599c28f
1 mengubah file dengan 13 tambahan dan 10 penghapusan
  1. 13 10
      gui/wxpython/core/render.py

+ 13 - 10
gui/wxpython/core/render.py

@@ -324,7 +324,10 @@ class MapLayer(Layer):
         """Represents map layer in the map canvas
         """
         Layer.__init__(self, *args, **kwargs)
-        self.legrow = grass.tempfile(create=True)
+        if self.type in ('vector'):  # will add d.vect.thematic
+            self._legrow = grass.tempfile(create=True)
+        else:
+            self._legrow = ''
 
     def GetMapset(self):
         """Get mapset of map layer
@@ -385,10 +388,10 @@ class RenderLayerMgr(wx.EvtHandler):
         env_cmd = env.copy()
         env_cmd.update(self._render_env)
         env_cmd['GRASS_RENDER_FILE'] = self.layer.mapfile
-        if type(self.layer).__name__ == "MapLayer":
-            if os.path.isfile(self.layer.legrow):
-                os.remove(self.layer.legrow)
-            env_cmd['GRASS_LEGEND_FILE'] = self.layer.legrow
+        if self.layer.GetType() in ('vector'):
+            if os.path.isfile(self.layer._legrow):
+                os.remove(self.layer._legrow)
+            env_cmd['GRASS_LEGEND_FILE'] = self.layer._legrow
 
         cmd_render = copy.deepcopy(cmd)
         cmd_render[1]['quiet'] = True  # be quiet
@@ -627,12 +630,12 @@ class RenderMapMgr(wx.EvtHandler):
         new_legend = []
         with open(self.Map.legfile, "w") as outfile:
             for layer in reversed(self.layers):
-                if layer.GetType() == 'overlay':
+                if layer.GetType() not in ('vector'):
                     continue
 
-                if os.path.isfile(layer.legrow) and layer.legrow[-1].isdigit() \
+                if os.path.isfile(layer._legrow) and layer._legrow[-1].isdigit() \
                    and layer.hidden is False:
-                    with open(layer.legrow) as infile:
+                    with open(layer._legrow) as infile:
                         line = infile.read()
                         outfile.write(line)
                         new_legend.append(line)
@@ -1317,8 +1320,8 @@ class Map(object):
                 for f in glob.glob(basefile):
                     os.remove(f)
 
-            if not overlay:
-                os.remove(layer.legrow)
+            if layer.GetType() in ('vector'):
+                os.remove(layer._legrow)
 
             list.remove(layer)