diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-01-14 19:01:59 +0100 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-01-14 19:01:59 +0100 |
commit | 4c4ced442811452e0a56800125db1620b2718c91 (patch) | |
tree | 1a585a0660a4fd93be2335c6a2a2a22c101130b8 /src/gui/undocommands.cpp | |
parent | b7af46fb5b23890387628528c2cf6e310fc96c25 (diff) |
add edge implementation 2/2
Diffstat (limited to 'src/gui/undocommands.cpp')
-rw-r--r-- | src/gui/undocommands.cpp | 24 |
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); +} |