MCPcopy Create free account
hub / github.com/SLiCAP/SLiCAP_python / mouseReleaseEvent

Method mouseReleaseEvent

SLiCAP/schematic/canvas.py:2814–2837  ·  view source on GitHub ↗
(self, event)

Source from the content-addressed store, hash-verified

2812 item.setSelected(False)
2813
2814 def mouseReleaseEvent(self, event):
2815 if event.button() == Qt.MiddleButton:
2816 self._panning = False
2817 self.unsetCursor()
2818 else:
2819 rb_start = self._rb_start
2820 if event.button() == Qt.LeftButton:
2821 self._rb_start = None
2822 super().mouseReleaseEvent(event)
2823 # Post-filter for both drag directions: use tight per-type rects so that
2824 # label bounding boxes don't cause early/wrong selection.
2825 # Skip for plain clicks (drag distance < 4 vp-px): a zero-size QRectF
2826 # returns False from intersects(), which would deselect any clicked item.
2827 if event.button() == Qt.LeftButton and rb_start is not None:
2828 dx = event.position().x() - rb_start.x()
2829 dy = event.position().y() - rb_start.y()
2830 if abs(dx) > 4 or abs(dy) > 4:
2831 press_scene = self.mapToScene(rb_start)
2832 release_scene = self.mapToScene(event.position().toPoint())
2833 rb_rect = QRectF(press_scene, release_scene).normalized()
2834 is_contain = dx < 0
2835 for item in list(self.scene().selectedItems()):
2836 if not _rb_keep_item(item, rb_rect, contains=is_contain):
2837 item.setSelected(False)
2838
2839 # ── keyboard ─────────────────────────────────────────────────────────────
2840

Callers 1

mouseReleaseEventMethod · 0.45

Calls 1

_rb_keep_itemFunction · 0.85

Tested by

no test coverage detected