diff options
Diffstat (limited to 'tikzit/src/gui/undocommands.cpp')
-rw-r--r-- | tikzit/src/gui/undocommands.cpp | 21 |
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())); + } } |