Browse Source

wxGUI: GroupDialog: add support for sub-groups

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@49372 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 13 years ago
parent
commit
37bc216818
1 changed files with 22 additions and 8 deletions
  1. 22 8
      gui/wxpython/gui_core/dialogs.py

+ 22 - 8
gui/wxpython/gui_core/dialogs.py

@@ -1008,6 +1008,10 @@ class GroupDialog(wx.Dialog):
         bodySizer.Add(item = self.infoLabel, 
         bodySizer.Add(item = self.infoLabel, 
                       flag = wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, border = 5)
                       flag = wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, border = 5)
         
         
+        self.subGroup = wx.CheckBox(parent = self, id = wx.ID_ANY,
+                                    label = _("Define also sub-group (same name as group)"))
+        bodySizer.Add(item = self.subGroup, flag = wx.BOTTOM | wx.EXPAND, border = 5)
+
         # bindings
         # bindings
         self.groupSelect.GetTextCtrl().Bind(wx.EVT_TEXT, self.OnGroupSelected)
         self.groupSelect.GetTextCtrl().Bind(wx.EVT_TEXT, self.OnGroupSelected)
         self.addLayer.Bind(wx.EVT_BUTTON, self.OnAddLayer)
         self.addLayer.Bind(wx.EVT_BUTTON, self.OnAddLayer)
@@ -1093,6 +1097,10 @@ class GroupDialog(wx.Dialog):
         for layerOld in layersOld:
         for layerOld in layersOld:
             if layerOld not in layersNew:
             if layerOld not in layersNew:
                 remove.append(layerOld)
                 remove.append(layerOld)
+                
+        kwargs = {}
+        if self.subGroup.IsChecked():
+            kwargs['subgroup'] = group
         
         
         ret = None
         ret = None
         if remove:
         if remove:
@@ -1100,26 +1108,32 @@ class GroupDialog(wx.Dialog):
                              parent = self,
                              parent = self,
                              group = group,
                              group = group,
                              flags = 'r',
                              flags = 'r',
-                             input = ','.join(remove))
+                             input = ','.join(remove),
+                             **kwargs)
                         
                         
         if add:
         if add:
             ret = RunCommand('i.group',
             ret = RunCommand('i.group',
                              parent = self,
                              parent = self,
                              group = group,
                              group = group,
-                             input = ','.join(add))
+                             input = ','.join(add),
+                             **kwargs)
                             
                             
         return ret
         return ret
         
         
     def CreateNewGroup(self, group):
     def CreateNewGroup(self, group):
         """!Create new group"""
         """!Create new group"""
         layers = self.GetLayers()
         layers = self.GetLayers()
-        ret = RunCommand('i.group',
-                         parent = self,
-                         group = group,
-                         input = layers)
-        return ret
         
         
-                        
+        kwargs = {}
+        if self.subGroup.IsChecked():
+            kwargs['subgroup'] = group
+        
+        return RunCommand('i.group',
+                          parent = self,
+                          group = group,
+                          input = layers,
+                          **kwargs)
+    
     def GetExistGroups(self):
     def GetExistGroups(self):
         """!Returns existing groups in current mapset"""
         """!Returns existing groups in current mapset"""
         return grass.list_grouped('group')[grass.gisenv()['MAPSET']]
         return grass.list_grouped('group')[grass.gisenv()['MAPSET']]