summaryrefslogtreecommitdiff
path: root/src/gui/undocommands.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-01-14 19:01:59 +0100
committerAleks Kissinger <aleks0@gmail.com>2018-01-14 19:01:59 +0100
commit4c4ced442811452e0a56800125db1620b2718c91 (patch)
tree1a585a0660a4fd93be2335c6a2a2a22c101130b8 /src/gui/undocommands.cpp
parentb7af46fb5b23890387628528c2cf6e310fc96c25 (diff)
add edge implementation 2/2
Diffstat (limited to 'src/gui/undocommands.cpp')
-rw-r--r--src/gui/undocommands.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/gui/undocommands.cpp b/src/gui/undocommands.cpp
index 736c258..0fb235d 100644
--- a/src/gui/undocommands.cpp
+++ b/src/gui/undocommands.cpp
@@ -160,3 +160,27 @@ void AddNodeCommand::redo()
_scene->setBounds(_newBounds);
}
+
+AddEdgeCommand::AddEdgeCommand(TikzScene *scene, Edge *edge) :
+ _scene(scene), _edge(edge)
+{
+}
+
+void AddEdgeCommand::undo()
+{
+ EdgeItem *ei = _scene->edgeItems()[_edge];
+ _scene->removeItem(ei);
+ _scene->edgeItems().remove(_edge);
+ delete ei;
+
+ _scene->graph()->removeEdge(_edge);
+}
+
+void AddEdgeCommand::redo()
+{
+ // TODO: get the current style
+ _scene->graph()->addEdge(_edge);
+ EdgeItem *ei = new EdgeItem(_edge);
+ _scene->edgeItems().insert(_edge, ei);
+ _scene->addItem(ei);
+}