浏览代码

wxGUI/vdigit: use special icon for background map

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@59007 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 11 年之前
父节点
当前提交
0c52cc493a
共有 3 个文件被更改,包括 33 次插入27 次删除
  1. 二进制
      gui/icons/grass/layer-bottom.png
  2. 19 20
      gui/wxpython/lmgr/layertree.py
  3. 14 7
      gui/wxpython/vdigit/toolbars.py

二进制
gui/icons/grass/layer-bottom.png


+ 19 - 20
gui/wxpython/lmgr/layertree.py

@@ -103,8 +103,10 @@ LMIcons = {
                             label = _('Add WMS layer.')),
     'layerOptions'  : MetaIcon(img = 'options',
                                label = _('Set options')),
-    'layerEdited'     : MetaIcon(img = 'edit',
-                               label = _("Editing mode"))
+    'layerEdited'     : MetaIcon(img = 'layer-edit',
+                               label = _("Editing mode")),
+    'layerBgmap'     : MetaIcon(img = 'layer-bottom',
+                               label = _("Background vector map"))
     }
 
 class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
@@ -217,7 +219,7 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
                          "layerRastnum", "layerVector", "layerThememap",
                          "layerThemechart", "layerGrid", "layerGeodesic",
                          "layerRhumb", "layerLabels", "layerCmd",
-                         "layerWms", "layerEdited"):
+                         "layerWms", "layerEdited", "layerBgmap"):
             iconKey = iconName[len("layer"):].lower()
             icon = LMIcons[iconName].GetBitmap(self.bmpsize)
             self._icon[iconKey] = il.Add(icon)
@@ -893,23 +895,20 @@ class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
         self.SetItemIcon(layerItem)
         self.RefreshLine(layerItem)
 
-    ### unused since r58937
-    # def OnSetBgMap(self, event):
-    #     """!Set background vector map for editing sesstion"""
-    #     digit = self.mapdisplay.GetWindow().digit
-    #     if event.IsChecked():
-    #         mapName = self.GetLayerInfo(self.layer_selected, key = 'maplayer').GetName()
-    #         UserSettings.Set(group = 'vdigit', key = 'bgmap', subkey = 'value',
-    #                          value = str(mapName), internal = True)
-    #         digit.OpenBackgroundMap(mapName)
-    #         self._setGradient('bgmap')
-    #     else:
-    #         UserSettings.Set(group = 'vdigit', key = 'bgmap', subkey = 'value',
-    #                          value = '', internal = True)
-    #         digit.CloseBackgroundMap()
-    #         self._setGradient()
-        
-    #     self.RefreshLine(self.layer_selected)
+    def SetBgMapForEditing(self, mapName, unset=False):
+        try:
+            layerItem = self.FindItemByData('name', mapName)[0]
+        except IndexError:
+             return
+        
+        if not unset:
+            self._setGradient('bgmap')
+            self.SetItemIcon(layerItem, 'bgmap')
+        else:
+            self._setGradient()
+            self.SetItemIcon(layerItem)
+        
+        self.RefreshLine(layerItem)
 
     def OnPopupProperties (self, event):
         """!Popup properties dialog"""

+ 14 - 7
gui/wxpython/vdigit/toolbars.py

@@ -45,11 +45,13 @@ class VDigitToolbar(BaseToolbar):
         
         self.editingStarted = Signal("VDigitToolbar.editingStarted")
         self.editingStopped = Signal("VDigitToolbar.editingStopped")
+        self.editingBgMap = Signal("VDigitToolbar.editingBgMap")
         layerTree = self._giface.GetLayerTree()
         if layerTree:
             self.editingStarted.connect(layerTree.StartEditing)
             self.editingStopped.connect(layerTree.StopEditing)
-
+            self.editingBgMap.connect(layerTree.SetBgMapForEditing)
+            
         # currently selected map layer for editing (reference to MapLayer instance)
         self.mapLayer = None
         # list of vector layers from Layer Manager (only in the current mapset)
@@ -575,15 +577,18 @@ class VDigitToolbar(BaseToolbar):
         dlg.Destroy()
         
         # close open background map if any
-        if UserSettings.Get(group = 'vdigit', key = 'bgmap', subkey = 'value',
-                            internal = True):
+        bgMap = UserSettings.Get(group = 'vdigit', key = 'bgmap', subkey = 'value',
+                                 internal = True)
+        if bgMap:
             self.digit.CloseBackgroundMap()
-        
+            self.editingBgMap.emit(mapName = bgMap, unset=True)
+
         # open background map for reading
         UserSettings.Set(group = 'vdigit', key = 'bgmap', subkey = 'value',
                          value = str(mapName), internal = True)
         self.digit.OpenBackgroundMap(mapName)
-        
+        self.editingBgMap.emit(mapName = mapName)
+
         if self.action['desc'] == 'copyLine': # select previous action
             self.ToggleTool(self.addPoint, True)
             self.ToggleTool(self.additionalTools, False)
@@ -941,9 +946,11 @@ class VDigitToolbar(BaseToolbar):
             self.digit.CloseMap()
 
             # close open background map if any
-            if UserSettings.Get(group = 'vdigit', key = 'bgmap', subkey = 'value',
-                                internal = True):
+            bgMap = UserSettings.Get(group = 'vdigit', key = 'bgmap', subkey = 'value',
+                                     internal = True)
+            if bgMap:
                 self.digit.CloseBackgroundMap()
+                self.editingBgMap.emit(mapName = bgMap, unset=True)
             
             self._giface.GetProgress().SetValue(0)
             self._giface.WriteCmdLog(_("Editing of vector map <%s> successfully finished") % \