make create group with master actually create (and name) master
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 21 May 2016 11:49:51 +0000 (07:49 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 31 May 2016 19:30:44 +0000 (15:30 -0400)
gtk2_ardour/group_tabs.cc
gtk2_ardour/group_tabs.h

index 91e865069c74e97bb1142467872b45e6e5483298..d0e1763d04916a973e62547d7b75958ad30e8c9a 100644 (file)
@@ -363,10 +363,10 @@ GroupTabs::get_menu (RouteGroup* g, bool in_tab_area)
 
                vca_menu = new Menu;
                MenuList& f (vca_menu->items());
-               f.push_back (MenuElem ("New", sigc::bind (sigc::mem_fun (*this, &GroupTabs::assign_group_to_master), 0, g)));
+               f.push_back (MenuElem ("New", sigc::bind (sigc::mem_fun (*this, &GroupTabs::assign_group_to_master), 0, g, true)));
 
                for (VCAList::const_iterator v = vcas.begin(); v != vcas.end(); ++v) {
-                       f.push_back (MenuElem (string_compose ("VCA %1", (*v)->number()), sigc::bind (sigc::mem_fun (*this, &GroupTabs::assign_group_to_master), (*v)->number(), g)));
+                       f.push_back (MenuElem (string_compose ("VCA %1", (*v)->number()), sigc::bind (sigc::mem_fun (*this, &GroupTabs::assign_group_to_master), (*v)->number(), g, true)));
                }
                items.push_back (MenuElem (_("Assign Group to Control Master..."), *vca_menu));
 
@@ -436,7 +436,7 @@ GroupTabs::get_menu (RouteGroup* g, bool in_tab_area)
 }
 
 void
-GroupTabs::assign_group_to_master (uint32_t which, RouteGroup* group)
+GroupTabs::assign_group_to_master (uint32_t which, RouteGroup* group, bool rename_master)
 {
        if (!_session || !group) {
                return;
@@ -465,6 +465,10 @@ GroupTabs::assign_group_to_master (uint32_t which, RouteGroup* group)
        }
 
        group->assign_master (master);
+
+       if (rename_master){
+               master->set_name (group->name());
+       }
 }
 
 void
@@ -597,6 +601,10 @@ GroupTabs::run_new_group_dialog (RouteList const & rl, bool with_master)
                for (RouteList::const_iterator i = rl.begin(); i != rl.end(); ++i) {
                        g->add (*i);
                }
+
+               if (with_master) {
+                       assign_group_to_master (0, g, true); /* zero => new master */
+               }
        }
 }
 
index cdd084484548f5112020545d315012cb5223815e..f718128e5f3a4997762869d63267b86a7b6496d2 100644 (file)
@@ -122,7 +122,7 @@ private:
        void route_added_to_route_group (ARDOUR::RouteGroup *, boost::weak_ptr<ARDOUR::Route>);
        void route_removed_from_route_group (ARDOUR::RouteGroup *, boost::weak_ptr<ARDOUR::Route>);
 
-       void assign_group_to_master (uint32_t which, ARDOUR::RouteGroup*);
+       void assign_group_to_master (uint32_t which, ARDOUR::RouteGroup*, bool rename_master);
        void assign_selection_to_master (uint32_t which);
        void assign_recenabled_to_master (uint32_t which);
        void assign_soloed_to_master (uint32_t which);