diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2017-12-18 17:59:56 +0000 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2017-12-18 17:59:56 +0000 |
commit | 708011ca445e6096d693bde77b63b43b9de78e54 (patch) | |
tree | 8c4e96d311953dde45d1de7aa8c84d49ec761480 /tikzit/src/gui/undocommands.cpp | |
parent | 2bf85f71dc07b2c4785b9408e3c426ccaab55b74 (diff) |
adding node position tracking for undo
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())); + } } |