summaryrefslogtreecommitdiff
path: root/src/gui/undocommands.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-07-20 14:19:08 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-07-20 14:19:08 +0200
commit7bdf1bbb2b65612bd3f349562ca622f28dc1abff (patch)
tree1cc9383a6cd8e6b3201920f48de072b48d09c1f0 /src/gui/undocommands.cpp
parent92d09d474eecb5bb48857408095e9c8564fe4337 (diff)
reflection
Diffstat (limited to 'src/gui/undocommands.cpp')
-rw-r--r--src/gui/undocommands.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/gui/undocommands.cpp b/src/gui/undocommands.cpp
index c8221fe..e2502f1 100644
--- a/src/gui/undocommands.cpp
+++ b/src/gui/undocommands.cpp
@@ -430,3 +430,34 @@ void ReplaceGraphCommand::redo()
_scene->tikzDocument()->setGraph(_newGraph);
_scene->graphReplaced();
}
+
+ReflectNodesCommand::ReflectNodesCommand(TikzScene *scene, QSet<Node*> nodes, bool horizontal, QUndoCommand *parent) :
+ GraphUpdateCommand(scene, parent), _nodes(nodes), _horizontal(horizontal)
+{
+}
+
+void ReflectNodesCommand::undo()
+{
+ _scene->graph()->reflectNodes(_nodes, _horizontal);
+ foreach (NodeItem *ni, _scene->nodeItems()) {
+ if (_nodes.contains(ni->node())) {
+ ni->readPos();
+ }
+ }
+
+ _scene->refreshAdjacentEdges(_nodes.toList());
+ GraphUpdateCommand::undo();
+}
+
+void ReflectNodesCommand::redo()
+{
+ _scene->graph()->reflectNodes(_nodes, _horizontal);
+ foreach (NodeItem *ni, _scene->nodeItems()) {
+ if (_nodes.contains(ni->node())) {
+ ni->readPos();
+ }
+ }
+
+ _scene->refreshAdjacentEdges(_nodes.toList());
+ GraphUpdateCommand::redo();
+}