252 |
252 |
253 @param evt mouse press event (QMouseEvent) |
253 @param evt mouse press event (QMouseEvent) |
254 """ |
254 """ |
255 self.__pBefore = evt.position().toPoint() |
255 self.__pBefore = evt.position().toPoint() |
256 |
256 |
257 self.__showHelp = not self.__helpTextRect.contains(evt.position().toPoint()) |
257 self.__showHelp = not self.__helpTextRect.contains( |
|
258 evt.position().toPoint()) |
258 if evt.button() == Qt.MouseButton.LeftButton: |
259 if evt.button() == Qt.MouseButton.LeftButton: |
259 self.__mouseDown = True |
260 self.__mouseDown = True |
260 self.__dragStartPoint = evt.position().toPoint() |
261 self.__dragStartPoint = evt.position().toPoint() |
261 self.__selectionBeforeDrag = QPolygon(self.__selection) |
262 self.__selectionBeforeDrag = QPolygon(self.__selection) |
262 if not self.__selection.containsPoint(evt.position().toPoint(), |
263 if not self.__selection.containsPoint(evt.position().toPoint(), |
275 """ |
276 """ |
276 Protected method to handle mouse movements. |
277 Protected method to handle mouse movements. |
277 |
278 |
278 @param evt mouse move event (QMouseEvent) |
279 @param evt mouse move event (QMouseEvent) |
279 """ |
280 """ |
280 shouldShowHelp = not self.__helpTextRect.contains(evt.position().toPoint()) |
281 shouldShowHelp = not self.__helpTextRect.contains( |
|
282 evt.position().toPoint()) |
281 if shouldShowHelp != self.__showHelp: |
283 if shouldShowHelp != self.__showHelp: |
282 self.__showHelp = shouldShowHelp |
284 self.__showHelp = shouldShowHelp |
283 self.update() |
285 self.update() |
284 |
286 |
285 if self.__mouseDown: |
287 if self.__mouseDown: |
287 p = evt.position().toPoint() |
289 p = evt.position().toPoint() |
288 self.__selection.append(p) |
290 self.__selection.append(p) |
289 else: |
291 else: |
290 # moving the whole selection |
292 # moving the whole selection |
291 p = evt.position().toPoint() - self.__pBefore # Offset |
293 p = evt.position().toPoint() - self.__pBefore # Offset |
292 self.__pBefore = evt.position().toPoint() # save position for next iteration |
294 self.__pBefore = evt.position().toPoint() |
|
295 # save position for next iteration |
293 self.__selection.translate(p) |
296 self.__selection.translate(p) |
294 |
297 |
295 self.update() |
298 self.update() |
296 else: |
299 else: |
297 if self.__selection.boundingRect().isEmpty(): |
300 if self.__selection.boundingRect().isEmpty(): |
309 |
312 |
310 @param evt mouse release event (QMouseEvent) |
313 @param evt mouse release event (QMouseEvent) |
311 """ |
314 """ |
312 self.__mouseDown = False |
315 self.__mouseDown = False |
313 self.__newSelection = False |
316 self.__newSelection = False |
314 if self.__selection.containsPoint(evt.position().toPoint(), Qt.FillRule.WindingFill): |
317 if self.__selection.containsPoint(evt.position().toPoint(), |
|
318 Qt.FillRule.WindingFill): |
315 self.setCursor(Qt.CursorShape.OpenHandCursor) |
319 self.setCursor(Qt.CursorShape.OpenHandCursor) |
316 self.update() |
320 self.update() |
317 |
321 |
318 def mouseDoubleClickEvent(self, evt): |
322 def mouseDoubleClickEvent(self, evt): |
319 """ |
323 """ |