mirror of https://gitlab.com/pamhyr/pamhyr2
Scenario: Allow to move on board with mouse left click.
parent
9b40b7eb39
commit
4ff81a0b63
|
|
@ -313,6 +313,16 @@ class GraphWidget(QGraphicsView):
|
||||||
def wheelEvent(self, event):
|
def wheelEvent(self, event):
|
||||||
self.scaleView(math.pow(2.0, -event.angleDelta().y() / 240.0))
|
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):
|
def scaleView(self, scaleFactor):
|
||||||
factor = self.transform().scale(
|
factor = self.transform().scale(
|
||||||
scaleFactor, scaleFactor
|
scaleFactor, scaleFactor
|
||||||
|
|
@ -323,6 +333,43 @@ class GraphWidget(QGraphicsView):
|
||||||
|
|
||||||
self.scale(scaleFactor, scaleFactor)
|
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
|
# Contextual menu
|
||||||
|
|
||||||
def contextMenuEvent(self, event):
|
def contextMenuEvent(self, event):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue