summaryrefslogtreecommitdiff
path: root/src/gui/undocommands.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-09-23 12:30:08 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-09-23 12:30:08 +0200
commitfa3d7da179b25d2ece40b56f5f9adddb3831906e (patch)
treed72e9857113920d6aeda060ec43b4dc83c4ea26f /src/gui/undocommands.cpp
parent1ca36f064da2a3619f0f8058f48e9f9dc6d07436 (diff)
added reordering of nodes and edges
Diffstat (limited to 'src/gui/undocommands.cpp')
-rw-r--r--src/gui/undocommands.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gui/undocommands.cpp b/src/gui/undocommands.cpp
index 7b254d1..50b81a4 100644
--- a/src/gui/undocommands.cpp
+++ b/src/gui/undocommands.cpp
@@ -513,3 +513,31 @@ void RotateNodesCommand::redo()
_scene->refreshAdjacentEdges(_nodes.toList());
GraphUpdateCommand::redo();
}
+
+ReorderCommand::ReorderCommand(TikzScene *scene,
+ const QVector<Node *> &oldNodeOrder,
+ const QVector<Node *> &newNodeOrder,
+ const QVector<Edge *> &oldEdgeOrder,
+ const QVector<Edge *> &newEdgeOrder,
+ QUndoCommand *parent) :
+ GraphUpdateCommand(scene, parent),
+ _oldNodeOrder(oldNodeOrder), _newNodeOrder(newNodeOrder),
+ _oldEdgeOrder(oldEdgeOrder), _newEdgeOrder(newEdgeOrder)
+{
+}
+
+void ReorderCommand::undo()
+{
+ _scene->graph()->reorderNodes(_oldNodeOrder);
+ _scene->graph()->reorderEdges(_oldEdgeOrder);
+ _scene->refreshZIndices();
+ GraphUpdateCommand::undo();
+}
+
+void ReorderCommand::redo()
+{
+ _scene->graph()->reorderNodes(_newNodeOrder);
+ _scene->graph()->reorderEdges(_newEdgeOrder);
+ _scene->refreshZIndices();
+ GraphUpdateCommand::redo();
+}