Scenario: Allow to move on board with mouse left click.

scenarios
Pierre-Antoine Rouby 2024-09-03 09:22:55 +02:00
parent 9b40b7eb39
commit 4ff81a0b63
1 changed files with 47 additions and 0 deletions

View File

@ -313,6 +313,16 @@ class GraphWidget(QGraphicsView):
def wheelEvent(self, event):
self.scaleView(math.pow(2.0, -event.angleDelta().y() / 240.0))
def keyPressEvent(self, event):
key = event.key()
if key == Qt.Key_Plus:
self.scaleView(1.2)
elif key == Qt.Key_Minus:
self.scaleView(1 / 1.2)
else:
super(GraphWidget, self).keyPressEvent(event)
def scaleView(self, scaleFactor):
factor = self.transform().scale(
scaleFactor, scaleFactor
@ -323,6 +333,43 @@ class GraphWidget(QGraphicsView):
self.scale(scaleFactor, scaleFactor)
def mousePressEvent(self, event):
# pos = self.mapToScene(event.pos())
# items = self.items(event.pos())
self.update()
super(GraphWidget, self).mousePressEvent(event)
def mouseMoveEvent(self, event):
pos = self.mapToScene(event.pos())
items = self.items(event.pos())
selectable_items = list(
filter(
lambda i: (type(i) is ScenarioItem
or type(i) is EdgeItem),
items
)
)
# Move on scene
if len(selectable_items) == 0:
if event.buttons() & Qt.LeftButton:
old_p = self.mapToScene(
int(self.m_origin_x), int(self.m_origin_y)
)
new_p = self.mapToScene(event.pos())
translation = new_p - old_p
self.translate(translation.x(), translation.y())
self.m_origin_x = event.x()
self.m_origin_y = event.y()
# Propagate event
self.update()
super(GraphWidget, self).mouseMoveEvent(event)
# Contextual menu
def contextMenuEvent(self, event):