(self, event)
| 2787 | super().mousePressEvent(event) |
| 2788 | |
| 2789 | def mouseMoveEvent(self, event): |
| 2790 | if self._panning: |
| 2791 | delta = event.position().toPoint() - self._pan_start |
| 2792 | self._pan_start = event.position().toPoint() |
| 2793 | self.horizontalScrollBar().setValue( |
| 2794 | self.horizontalScrollBar().value() - delta.x() |
| 2795 | ) |
| 2796 | self.verticalScrollBar().setValue( |
| 2797 | self.verticalScrollBar().value() - delta.y() |
| 2798 | ) |
| 2799 | else: |
| 2800 | super().mouseMoveEvent(event) |
| 2801 | # Keep visual selection in sync with what the final post-filter will keep. |
| 2802 | if (event.buttons() & Qt.LeftButton and self._rb_start is not None): |
| 2803 | dx = event.position().x() - self._rb_start.x() |
| 2804 | dy = event.position().y() - self._rb_start.y() |
| 2805 | if abs(dx) > 4 or abs(dy) > 4: |
| 2806 | press_scene = self.mapToScene(self._rb_start) |
| 2807 | release_scene = self.mapToScene(event.position().toPoint()) |
| 2808 | rb_rect = QRectF(press_scene, release_scene).normalized() |
| 2809 | is_contain = dx < 0 |
| 2810 | for item in list(self.scene().selectedItems()): |
| 2811 | if not _rb_keep_item(item, rb_rect, contains=is_contain): |
| 2812 | item.setSelected(False) |
| 2813 | |
| 2814 | def mouseReleaseEvent(self, event): |
| 2815 | if event.button() == Qt.MiddleButton: |
no test coverage detected