diff options
author | David Robillard <d@drobilla.net> | 2007-02-23 23:53:37 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-02-23 23:53:37 +0000 |
commit | 64314961f83810d6b93e128013ed94deb0c7772a (patch) | |
tree | 47901f080f64cf4f0d9f2a52f8a0f990fc3be517 /src/gui/MachinaCanvas.cpp | |
parent | 2d050bbc47e57e4361e0625c0c2ee30649252820 (diff) | |
download | machina-64314961f83810d6b93e128013ed94deb0c7772a.tar.gz machina-64314961f83810d6b93e128013ed94deb0c7772a.tar.bz2 machina-64314961f83810d6b93e128013ed94deb0c7772a.zip |
Removable edges.
GUI touchups.
git-svn-id: http://svn.drobilla.net/lad/machina@332 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/MachinaCanvas.cpp')
-rw-r--r-- | src/gui/MachinaCanvas.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gui/MachinaCanvas.cpp b/src/gui/MachinaCanvas.cpp index 26ce935..03a05bc 100644 --- a/src/gui/MachinaCanvas.cpp +++ b/src/gui/MachinaCanvas.cpp @@ -64,7 +64,10 @@ MachinaCanvas::node_clicked(SharedPtr<NodeView> item, GdkEventButton* event) if (last) { if (node != last) - connect_node(last, node); + if (get_connection(last, node)) + disconnect_node(last, node); + else + connect_node(last, node); last->set_default_base_color(); _last_clicked.reset(); @@ -130,9 +133,12 @@ MachinaCanvas::connect_node(boost::shared_ptr<NodeView> src, void -MachinaCanvas::disconnect_node(boost::shared_ptr<NodeView>,// item1, - boost::shared_ptr<NodeView>)// item2) +MachinaCanvas::disconnect_node(boost::shared_ptr<NodeView> src, + boost::shared_ptr<NodeView> dst) { + src->node()->remove_outgoing_edges_to(dst->node()); + remove_connection(src, dst); + #if 0 boost::shared_ptr<MachinaPort> input = boost::dynamic_pointer_cast<MachinaPort>(port1); |