summaryrefslogtreecommitdiff
path: root/tikzit/src/gui/undocommands.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2017-12-18 17:59:56 +0000
committerAleks Kissinger <aleks0@gmail.com>2017-12-18 17:59:56 +0000
commit708011ca445e6096d693bde77b63b43b9de78e54 (patch)
tree8c4e96d311953dde45d1de7aa8c84d49ec761480 /tikzit/src/gui/undocommands.cpp
parent2bf85f71dc07b2c4785b9408e3c426ccaab55b74 (diff)
adding node position tracking for undo
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()));
+ }
}