summaryrefslogtreecommitdiff
path: root/tikzit/src/gui/undocommands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/gui/undocommands.cpp')
-rw-r--r--tikzit/src/gui/undocommands.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/tikzit/src/gui/undocommands.cpp b/tikzit/src/gui/undocommands.cpp
index 38f7569..6d48fc4 100644
--- a/tikzit/src/gui/undocommands.cpp
+++ b/tikzit/src/gui/undocommands.cpp
@@ -1,16 +1,29 @@
#include "undocommands.h"
-MoveCommand::MoveCommand(TikzScene *scene, QUndoCommand *parent) : QUndoCommand(parent)
+MoveCommand::MoveCommand(TikzScene *scene,
+ QMap<Node*, QPointF> oldNodePositions,
+ QMap<Node*, QPointF> newNodePositions,
+ QUndoCommand *parent) :
+ QUndoCommand(parent),
+ _scene(scene),
+ _oldNodePositions(oldNodePositions),
+ _newNodePositions(newNodePositions)
{
- _scene = scene;
}
+
void MoveCommand::undo()
{
-
+ foreach (NodeItem *ni, _scene->nodeItems()) {
+ if (_oldNodePositions.contains(ni->node()))
+ ni->node()->setPoint(_oldNodePositions.value(ni->node()));
+ }
}
void MoveCommand::redo()
{
-
+ foreach (NodeItem *ni, _scene->nodeItems()) {
+ if (_newNodePositions.contains(ni->node()))
+ ni->node()->setPoint(_newNodePositions.value(ni->node()));
+ }
}