expose operation to remove subgroup

git-svn-id: svn://localhost/ardour2/branches/3.0@13762 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2013-01-03 19:34:07 +00:00
parent 7053f0922e
commit 52167705ef
4 changed files with 19 additions and 1 deletions

View File

@ -319,7 +319,11 @@ GroupTabs::get_menu (RouteGroup* g)
items.push_back (MenuElem (_("Collect Group"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::collect), g)));
items.push_back (MenuElem (_("Remove Group"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::remove_group), g)));
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Add New Subgroup Bus"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::subgroup), g, false, PreFader)));
if (g->has_subgroup()) {
items.push_back (MenuElem (_("Remove Subgroup Bus"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::un_subgroup), g)));
} else {
items.push_back (MenuElem (_("Add New Subgroup Bus"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::subgroup), g, false, PreFader)));
}
items.push_back (MenuElem (_("Add New Aux Bus (pre-fader)"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::subgroup), g, true, PreFader)));
items.push_back (MenuElem (_("Add New Aux Bus (post-fader)"), sigc::bind (sigc::mem_fun (*this, &GroupTabs::subgroup), g, true, PostFader)));
}
@ -434,6 +438,12 @@ GroupTabs::subgroup (RouteGroup* g, bool aux, Placement placement)
g->make_subgroup (aux, placement);
}
void
GroupTabs::un_subgroup (RouteGroup* g)
{
g->destroy_subgroup ();
}
struct CollectSorter {
CollectSorter (RouteSortOrderKey key) : _key (key) {}

View File

@ -104,6 +104,7 @@ private:
void set_activation (ARDOUR::RouteGroup *, bool);
void edit_group (ARDOUR::RouteGroup *);
void subgroup (ARDOUR::RouteGroup *, bool, ARDOUR::Placement);
void un_subgroup (ARDOUR::RouteGroup *);
void activate_all ();
void disable_all ();
void remove_group (ARDOUR::RouteGroup *);

View File

@ -118,6 +118,7 @@ class RouteGroup : public SessionObject
changed();
}
bool has_subgroup() const;
void make_subgroup (bool, Placement);
void destroy_subgroup ();

View File

@ -506,6 +506,12 @@ RouteGroup::destroy_subgroup ()
subgroup_bus.reset ();
}
bool
RouteGroup::has_subgroup() const
{
return subgroup_bus != 0;
}
bool
RouteGroup::enabled_property (PBD::PropertyID prop)
{