Kaynağa Gözat

wxGUI: attemt to fix https://trac.osgeo.org/grass/ticket/1330

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@46771 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 14 yıl önce
ebeveyn
işleme
d18e1ee8af

+ 16 - 10
gui/wxpython/gui_modules/layertree.py

@@ -907,7 +907,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
             elif ltype == 'command':
                 ctrl.SetValue(lname)
             else:
-                self.SetItemText(layer, self._getLayerName(layer))
+                self.SetItemText(layer, self._getLayerName(layer, lname))
         
         # updated progress bar range (mapwindow statusbar)
         if checked is True:
@@ -1373,21 +1373,27 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
         
         return newItem
 
-    def _getLayerName(self, item):
-        """!Get layer name string"""
+    def _getLayerName(self, item, lname = ''):
+        """!Get layer name string
+
+        @param lname optional layer name
+        """
         mapLayer = self.GetPyData(item)[0]['maplayer']
-        mapname  = self.GetPyData(item)[0]['label']
+        if not lname:
+            lname  = self.GetPyData(item)[0]['label']
         opacity  = int(mapLayer.GetOpacity(float = True) * 100)
-        if not mapname:
+        if not lname:
             dcmd    = self.GetPyData(item)[0]['cmd']
-            mapname, found = utils.GetLayerNameFromCmd(dcmd, layerType = mapLayer.GetType(),
+            lname, found = utils.GetLayerNameFromCmd(dcmd, layerType = mapLayer.GetType(),
                                                        fullyQualified = True)
-        if not found:
-            return None
-        
-        return mapname + ' (%s %d' % (_('opacity:'), opacity) + '%)'
+            if not found:
+                return None
         
+        if opacity < 100:
+            return lname + ' (%s %d' % (_('opacity:'), opacity) + '%)'
         
+        return lname
+                
     def GetOptData(self, dcmd, layer, params, propwin):
         """!Process layer data (when changes in properties dialog are applied)
         """

+ 5 - 5
gui/wxpython/gui_modules/workspace.py

@@ -771,7 +771,7 @@ class WriteWorkspaceFile(object):
             elif type == 'group':
                 name = mapTree.GetItemText(item)
                 self.file.write('%s<group name="%s" checked="%d">\n' % \
-                               (' ' * self.indent, name, checked));
+                               (' ' * self.indent, name.encode('utf8'), checked));
                 self.indent += 4
                 subItem = mapTree.GetFirstChild(item)[0]
                 self.__writeLayer(mapTree, subItem)
@@ -780,13 +780,13 @@ class WriteWorkspaceFile(object):
             else:
                 cmd = mapTree.GetPyData(item)[0]['maplayer'].GetCmd(string=False)
                 name = mapTree.GetItemText(item)
+                opacity = maplayer.GetOpacity(float = True)
                 # remove 'opacity' part
-                if '(opacity' in name:
+                if opacity < 1:
                     name = name.split('(', -1)[0].strip()
-                opacity = maplayer.GetOpacity(float=True)
                 self.file.write('%s<layer type="%s" name="%s" checked="%d" opacity="%f">\n' % \
-                               (' ' * self.indent, type, name, checked, opacity));
-
+                                    (' ' * self.indent, type, name.encode('utf8'), checked, opacity));
+                
                 self.indent += 4
                 # selected ?
                 if item in itemSelected: