diff --git a/src/view/network/GraphWidget.py b/src/view/network/GraphWidget.py index 4496a291d2d1bcabde5fdfa0c4bc1bbec75b94f2..3288e8f92f024fa86d0933cc032bf6307182e18a 100644 --- a/src/view/network/GraphWidget.py +++ b/src/view/network/GraphWidget.py @@ -256,6 +256,9 @@ class GraphWidget(QGraphicsView): self.edge_items = [] self.texts = {} + self.m_origin_x = 0.0 + self.m_origin_y = 0.0 + scene = QGraphicsScene(self) scene.setItemIndexMethod(QGraphicsScene.NoIndex) scene.setSceneRect(0, 0, 2000, 2000) @@ -673,7 +676,20 @@ class GraphWidget(QGraphicsView): self.tmp_line.dest = pos self.tmp_line.update() - # If state is "move" propagate event + # If state is "move" if self._state == "move": + # Move on scene + if (not self.selected_item() and + event.buttons() & Qt.LeftButton): + old_p = self.mapToScene(self.m_origin_x, 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)