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):
|
||||
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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue