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: |