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

svn_grass at osgeo.org svn_grass at osgeo.org
Sun Nov 6 14:30:36 EST 2011


Author: martinl
Date: 2011-11-06 11:30:36 -0800 (Sun, 06 Nov 2011)
New Revision: 49121

Modified:
   grass/trunk/gui/wxpython/gui_modules/toolbars.py
Log:
wxGUI/vdigit: first steps towards vector digitizer customization


Modified: grass/trunk/gui/wxpython/gui_modules/toolbars.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/toolbars.py	2011-11-06 10:54:10 UTC (rev 49120)
+++ grass/trunk/gui/wxpython/gui_modules/toolbars.py	2011-11-06 19:30:36 UTC (rev 49121)
@@ -496,10 +496,11 @@
 class VDigitToolbar(AbstractToolbar):
     """!Toolbar for digitization
     """
-    def __init__(self, parent, mapcontent, layerTree = None, log = None):
+    def __init__(self, parent, mapcontent, tools = [], layerTree = None, log = None):
         self.mapcontent    = mapcontent # Map class instance
         self.layerTree     = layerTree  # reference to layer tree associated to map display
         self.log           = log        # log area
+        self.tools         = tools
         AbstractToolbar.__init__(self, parent)
         self.digit         = None
         
@@ -508,7 +509,8 @@
         # list of vector layers from Layer Manager (only in the current mapset)
         self.layers   = [] 
         
-        self.comboid    = None
+        self.comboid  = self.combo = None
+        self.undo     = -1
         
         # only one dialog can be open
         self.settingsDialog   = None
@@ -528,11 +530,13 @@
         # realize toolbar
         self.Realize()
         # workaround for Mac bug. May be fixed by 2.8.8, but not before then.
-        self.combo.Hide()
-        self.combo.Show()
+        if self.combo:
+            self.combo.Hide()
+            self.combo.Show()
         
         # disable undo/redo
-        self.EnableTool(self.undo, False)
+        if self.undo:
+            self.EnableTool(self.undo, False)
         
         # toogle to pointer by default
         self.OnTool(None)
@@ -544,57 +548,79 @@
         """
         data = []
         icons = Icons['vdigit']
-        return self._getToolbarData(((None, ),
-                                     ("addPoint", icons["addPoint"],
-                                      self.OnAddPoint,
-                                      wx.ITEM_CHECK),
-                                     ("addLine", icons["addLine"],
-                                      self.OnAddLine,
-                                      wx.ITEM_CHECK),
-                                     ("addBoundary", icons["addBoundary"],
-                                      self.OnAddBoundary,
-                                      wx.ITEM_CHECK),
-                                     ("addCentroid", icons["addCentroid"],
-                                      self.OnAddCentroid,
-                                      wx.ITEM_CHECK),
-                                     ("addArea", icons["addArea"],
-                                      self.OnAddArea,
-                                      wx.ITEM_CHECK),
-                                     ("moveVertex", icons["moveVertex"],
-                                      self.OnMoveVertex,
-                                      wx.ITEM_CHECK),
-                                     ("addVertex", icons["addVertex"],
-                                      self.OnAddVertex,
-                                      wx.ITEM_CHECK),
-                                     ("removeVertex", icons["removeVertex"],
-                                      self.OnRemoveVertex,
-                                      wx.ITEM_CHECK),
-                                     ("editLine", icons["editLine"],
-                                      self.OnEditLine,
-                                      wx.ITEM_CHECK),
-                                     ("moveLine", icons["moveLine"],
-                                      self.OnMoveLine,
-                                      wx.ITEM_CHECK),
-                                     ("deleteLine", icons["deleteLine"],
-                                      self.OnDeleteLine,
-                                      wx.ITEM_CHECK),
-                                     ("displayCats", icons["displayCats"],
-                                      self.OnDisplayCats,
-                                      wx.ITEM_CHECK),
-                                     ("displayAttr", icons["displayAttr"],
-                                      self.OnDisplayAttr,
-                                      wx.ITEM_CHECK),
-                                     ("additionalTools", icons["additionalTools"],
-                                      self.OnAdditionalToolMenu,
-                                      wx.ITEM_CHECK),                                      
-                                     (None, ),
-                                     ("undo", icons["undo"],
-                                      self.OnUndo),
-                                     ("settings", icons["settings"],
-                                      self.OnSettings),
-                                     ("quit", icons["quit"],
-                                      self.OnExit))
-                                    )
+        if not self.tools or 'selector' in self.tools:
+            data.append((None, ))
+        if not self.tools or 'addPoint' in self.tools:
+            data.append(("addPoint", icons["addPoint"],
+                         self.OnAddPoint,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'addLine' in self.tools:
+            data.append(("addLine", icons["addLine"],
+                        self.OnAddLine,
+                        wx.ITEM_CHECK))
+        if not self.tools or 'addBoundary' in self.tools:
+            data.append(("addBoundary", icons["addBoundary"],
+                         self.OnAddBoundary,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'addCentroid' in self.tools:
+            data.append(("addCentroid", icons["addCentroid"],
+                         self.OnAddCentroid,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'addArea' in self.tools:
+            data.append(("addArea", icons["addArea"],
+                         self.OnAddArea,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'moveVertex' in self.tools:            
+            data.append(("moveVertex", icons["moveVertex"],
+                         self.OnMoveVertex,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'addVertex' in self.tools:
+            data.append(("addVertex", icons["addVertex"],
+                         self.OnAddVertex,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'removeVertex' in self.tools:
+            data.append(("removeVertex", icons["removeVertex"],
+                         self.OnRemoveVertex,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'editLine' in self.tools:            
+            data.append(("editLine", icons["editLine"],
+                         self.OnEditLine,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'moveLine' in self.tools:
+            data.append(("moveLine", icons["moveLine"],
+                         self.OnMoveLine,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'deleteLine' in self.tools:
+            data.append(("deleteLine", icons["deleteLine"],
+                         self.OnDeleteLine,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'displayCats' in self.tools:
+            data.append(("displayCats", icons["displayCats"],
+                         self.OnDisplayCats,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'displayAttr' in self.tools:
+            data.append(("displayAttr", icons["displayAttr"],
+                         self.OnDisplayAttr,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'additionalSelf.Tools' in self.tools:
+            data.append(("additionalTools", icons["additionalTools"],
+                         self.OnAdditionalToolMenu,
+                         wx.ITEM_CHECK))
+        if not self.tools or 'undo' in self.tools or \
+                'settings' in self.tools or \
+                'quit' in self.tools:
+            data.append((None, ))
+        if not self.tools or 'undo' in self.tools:
+            data.append(("undo", icons["undo"],
+                         self.OnUndo))
+        if not self.tools or 'settings' in self.tools:
+            data.append(("settings", icons["settings"],
+                         self.OnSettings))
+        if not self.tools or 'quit' in self.tools:
+            data.append(("quit", icons["quit"],
+                         self.OnExit))
+        
+        return self._getToolbarData(data)
     
     def OnTool(self, event):
         """!Tool selected -> disable selected tool in map toolbar"""
@@ -1116,7 +1142,8 @@
             return False
         
         # update toolbar
-        self.combo.SetValue(mapLayer.GetName())
+        if self.combo:
+            self.combo.SetValue(mapLayer.GetName())
         self.parent.toolbars['map'].combo.SetValue (_('Digitize'))
         lmgr = self.parent.GetLayerManager()
         if lmgr:
@@ -1145,7 +1172,8 @@
         @return True on success
         @return False on failure
         """
-        self.combo.SetValue (_('Select vector map'))
+        if self.combo:
+            self.combo.SetValue (_('Select vector map'))
         
         # save changes
         if self.mapLayer:
@@ -1227,13 +1255,14 @@
                 value = _('Select vector map')
             else:
                 value = layerNameSelected
-
+            
             if not self.comboid:
-                self.combo = wx.ComboBox(self, id = wx.ID_ANY, value = value,
-                                         choices = [_('New vector map'), ] + layerNameList, size = (80, -1),
-                                         style = wx.CB_READONLY)
-                self.comboid = self.InsertControl(0, self.combo)
-                self.parent.Bind(wx.EVT_COMBOBOX, self.OnSelectMap, self.comboid)
+                if not self.tools or 'selector' in self.tools:
+                    self.combo = wx.ComboBox(self, id = wx.ID_ANY, value = value,
+                                             choices = [_('New vector map'), ] + layerNameList, size = (80, -1),
+                                             style = wx.CB_READONLY)
+                    self.comboid = self.InsertControl(0, self.combo)
+                    self.parent.Bind(wx.EVT_COMBOBOX, self.OnSelectMap, self.comboid)
             else:
                 self.combo.SetItems([_('New vector map'), ] + layerNameList)
             



More information about the grass-commit mailing list