diff options
author | David Robillard <d@drobilla.net> | 2008-06-10 17:41:26 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-06-10 17:41:26 +0000 |
commit | 6ed65a4a3b14d204a24ab63fa907f8e9adce01dc (patch) | |
tree | 52ec9bafe242c976b70f8422f1a33f9e78d9ab16 /src/libs/gui/PortMenu.cpp | |
parent | 43dc73756cf97b4e4bc2ebdec59f3cb15f99750b (diff) | |
download | ingen-6ed65a4a3b14d204a24ab63fa907f8e9adce01dc.tar.gz ingen-6ed65a4a3b14d204a24ab63fa907f8e9adce01dc.tar.bz2 ingen-6ed65a4a3b14d204a24ab63fa907f8e9adce01dc.zip |
Fix 'disconnect' operation for all objects (inc. patch ports).
Fixes ticket #147.
git-svn-id: http://svn.drobilla.net/lad/ingen@1265 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/gui/PortMenu.cpp')
-rw-r--r-- | src/libs/gui/PortMenu.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/libs/gui/PortMenu.cpp b/src/libs/gui/PortMenu.cpp index 8bb002c9..45b216b6 100644 --- a/src/libs/gui/PortMenu.cpp +++ b/src/libs/gui/PortMenu.cpp @@ -30,14 +30,16 @@ namespace GUI { PortMenu::PortMenu(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& xml) : ObjectMenu(cobject, xml) + , _patch_port(NULL) { } void -PortMenu::init(SharedPtr<PortModel> port) +PortMenu::init(SharedPtr<PortModel> port, bool patch_port) { ObjectMenu::init(port); + _patch_port = patch_port; if ( ! PtrCast<PatchModel>(port->parent()) ) { _polyphonic_menuitem->set_sensitive(false); @@ -48,6 +50,19 @@ PortMenu::init(SharedPtr<PortModel> port) _enable_signal = true; } + +void +PortMenu::on_menu_disconnect() +{ + if (_patch_port) { + App::instance().engine()->disconnect_all( + _object->parent()->path(), _object->path()); + } else { + App::instance().engine()->disconnect_all( + _object->parent()->path().parent(), _object->path()); + } +} + } // namespace GUI } // namespace Ingen |