aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui/MachinaCanvas.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-02-23 23:53:37 +0000
committerDavid Robillard <d@drobilla.net>2007-02-23 23:53:37 +0000
commit64314961f83810d6b93e128013ed94deb0c7772a (patch)
tree47901f080f64cf4f0d9f2a52f8a0f990fc3be517 /src/gui/MachinaCanvas.cpp
parent2d050bbc47e57e4361e0625c0c2ee30649252820 (diff)
downloadmachina-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.cpp12
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);