Viewer.py
changeset 620 f0232cd1628d
parent 617 1a80e0598045
child 621 084a21799803
equal deleted inserted replaced
619:fc03645162b5 620:f0232cd1628d
  1419                     if len(elements) == 0:
  1419                     if len(elements) == 0:
  1420                         self.SelectedElement = element
  1420                         self.SelectedElement = element
  1421                     elif len(elements) == 1:
  1421                     elif len(elements) == 1:
  1422                         self.SelectedElement = elements[0]
  1422                         self.SelectedElement = elements[0]
  1423                     self.SelectedElement.SetSelected(True)
  1423                     self.SelectedElement.SetSelected(True)
       
  1424                 else:
       
  1425                     self.rubberBand.Reset()
       
  1426                     self.rubberBand.OnLeftDown(event, dc, self.Scaling)
  1424             else:
  1427             else:
  1425                 element = self.FindElement(event)
  1428                 element = self.FindElement(event)
  1426                 if not self.Debug and (element is None or element.TestHandle(event) == (0, 0)):
  1429                 if not self.Debug and (element is None or element.TestHandle(event) == (0, 0)):
  1427                     connector = self.FindBlockConnector(pos)
  1430                     connector = self.FindBlockConnector(pos)
  1428                 else:
  1431                 else:
  1492 
  1495 
  1493     def OnViewerLeftUp(self, event):
  1496     def OnViewerLeftUp(self, event):
  1494         self.StartMousePos = None
  1497         self.StartMousePos = None
  1495         if self.rubberBand.IsShown():
  1498         if self.rubberBand.IsShown():
  1496             if self.Mode == MODE_SELECTION:
  1499             if self.Mode == MODE_SELECTION:
  1497                 elements = self.SearchElements(self.rubberBand.GetCurrentExtent())
  1500                 new_elements = self.SearchElements(self.rubberBand.GetCurrentExtent())
  1498                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
  1501                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
  1499                 if len(elements) == 1:
  1502                 if event.ShiftDown() and self.SelectedElement is not None:
  1500                     self.SelectedElement = elements[0]
  1503                     if isinstance(self.SelectedElement, Graphic_Group):
       
  1504                         elements = self.SelectedElement.GetElements()
       
  1505                     else:
       
  1506                         elements = [self.SelectedElement]
       
  1507                     for element in elements:
       
  1508                         if element not in new_elements:
       
  1509                             new_elements.append(element)
       
  1510                 if len(new_elements) == 1:
       
  1511                     self.SelectedElement = new_elements[0]
  1501                     self.SelectedElement.SetSelected(True)
  1512                     self.SelectedElement.SetSelected(True)
  1502                 elif len(elements) > 1:
  1513                 elif len(new_elements) > 1:
  1503                     self.SelectedElement = Graphic_Group(self)
  1514                     self.SelectedElement = Graphic_Group(self)
  1504                     self.SelectedElement.SetElements(elements)
  1515                     self.SelectedElement.SetElements(new_elements)
  1505                     self.SelectedElement.SetSelected(True)
  1516                     self.SelectedElement.SetSelected(True)
  1506             else:
  1517             else:
  1507                 bbox = self.rubberBand.GetCurrentExtent()
  1518                 bbox = self.rubberBand.GetCurrentExtent()
  1508                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)                
  1519                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)                
  1509                 if self.Mode == MODE_BLOCK:
  1520                 if self.Mode == MODE_BLOCK: