Browse Source

wxGUI/modeler: allow multiple selection, label size column width

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@58604 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 11 years ago
parent
commit
9a7b96bc38
2 changed files with 20 additions and 7 deletions
  1. 2 1
      gui/wxpython/gmodeler/dialogs.py
  2. 18 6
      gui/wxpython/gmodeler/frame.py

+ 2 - 1
gui/wxpython/gmodeler/dialogs.py

@@ -790,7 +790,8 @@ class ItemListCtrl(ModelListCtrl):
         ModelListCtrl.__init__(self, parent, columns, frame, **kwargs)
         self.itemIdMap = list()
         
-        self.SetColumnWidth(1, 100)
+        self.SetColumnWidth(0, 100)
+        self.SetColumnWidth(1, 75)
         self.SetColumnWidth(2, 65)
         
     def GetListCtrl(self):

+ 18 - 6
gui/wxpython/gmodeler/frame.py

@@ -1084,7 +1084,17 @@ class ModelCanvas(ogl.ShapeCanvas):
                 yNew += yBox * 3
 
         return xNew, yNew
-    
+
+    def GetShapesSelected(self):
+        """!Get list of selected shapes"""
+        selected = list()
+        diagram = self.GetDiagram()
+        for shape in diagram.GetShapeList():
+            if shape.Selected():
+                selected.append(shape)
+
+        return selected
+
 class ModelEvtHandler(ogl.ShapeEvtHandler):
     """!Model event handler class"""
     def __init__(self, log, frame):
@@ -1098,6 +1108,7 @@ class ModelEvtHandler(ogl.ShapeEvtHandler):
         shape = self.GetShape()
         canvas = shape.GetCanvas()
         dc = wx.ClientDC(canvas)
+        
         # probably does nothing, removed from wxPython 2.9
         # canvas.PrepareDC(dc)
         
@@ -1128,7 +1139,7 @@ class ModelEvtHandler(ogl.ShapeEvtHandler):
                 del self.frame.defineRelation
         
         # select object
-        self._onSelectShape(shape)
+        self._onSelectShape(shape, append = True if keys == 1 else False)
         
         if hasattr(shape, "GetLog"):
             self.log.SetStatusText(shape.GetLog(), 0)
@@ -1335,7 +1346,7 @@ class ModelEvtHandler(ogl.ShapeEvtHandler):
             self.frame.ModelChanged()
         dlg.Destroy()
 
-    def _onSelectShape(self, shape):
+    def _onSelectShape(self, shape, append=False):
         canvas = shape.GetCanvas()
         dc = wx.ClientDC(canvas)
         
@@ -1346,9 +1357,10 @@ class ModelEvtHandler(ogl.ShapeEvtHandler):
             shapeList = canvas.GetDiagram().GetShapeList()
             toUnselect = list()
             
-            for s in shapeList:
-                if s.Selected():
-                    toUnselect.append(s)
+            if not append:
+                for s in shapeList:
+                    if s.Selected():
+                        toUnselect.append(s)
             
             shape.Select(True, dc)