From ef30c3dc8d847b6f162d9c70a2fdb3931318c717 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 28 Sep 2021 07:11:37 +0200 Subject: [PATCH] Allow to edit group from the RouteGroupMenu --- gtk2_ardour/route_group_menu.cc | 11 +++++++++++ gtk2_ardour/route_group_menu.h | 1 + 2 files changed, 12 insertions(+) diff --git a/gtk2_ardour/route_group_menu.cc b/gtk2_ardour/route_group_menu.cc index 5e48522528..0f1b118b6d 100644 --- a/gtk2_ardour/route_group_menu.cc +++ b/gtk2_ardour/route_group_menu.cc @@ -84,6 +84,9 @@ RouteGroupMenu::build (WeakRouteList const & s) MenuList& items = _menu->items (); items.push_back (MenuElem (_("New Group..."), sigc::mem_fun (*this, &RouteGroupMenu::new_group))); + if (groups.size() == 1 && *groups.begin() != 0) { + items.push_back (MenuElem (_("Edit Group..."), sigc::bind (sigc::mem_fun (*this, &RouteGroupMenu::edit_group), *groups.begin ()))); + } items.push_back (SeparatorElem ()); RadioMenuItem::Group group; @@ -185,6 +188,14 @@ RouteGroupMenu::new_group_dialog_finished (int r, RouteGroupDialog* d) delete_when_idle (d); } +void +RouteGroupMenu::edit_group (ARDOUR::RouteGroup* g) +{ + RouteGroupDialog* d = new RouteGroupDialog (g, false); + d->signal_response().connect (sigc::hide (sigc::bind (sigc::ptr_fun (&delete_when_idle), d))); + d->present (); +} + Gtk::Menu * RouteGroupMenu::menu () { diff --git a/gtk2_ardour/route_group_menu.h b/gtk2_ardour/route_group_menu.h index 48146dd8ac..16f58bb63d 100644 --- a/gtk2_ardour/route_group_menu.h +++ b/gtk2_ardour/route_group_menu.h @@ -38,6 +38,7 @@ public: private: void add_item (ARDOUR::RouteGroup *, std::set const &, Gtk::RadioMenuItem::Group*); void new_group (); + void edit_group (ARDOUR::RouteGroup *); void set_group (Gtk::RadioMenuItem*, ARDOUR::RouteGroup *); void new_group_dialog_finished (int, RouteGroupDialog*);