X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_group_menu.cc;h=7e05c26fe3d63414a559793806c9291cf0d8b52e;hb=8e59a26ccf13de93ac681d761bad09cd6bcf0c90;hp=6c3e9db73dea4edfb363b0ea4644f163fb3606c0;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/route_group_menu.cc b/gtk2_ardour/route_group_menu.cc index 6c3e9db73d..7e05c26fe3 100644 --- a/gtk2_ardour/route_group_menu.cc +++ b/gtk2_ardour/route_group_menu.cc @@ -28,9 +28,9 @@ using namespace Gtk; using namespace ARDOUR; -RouteGroupMenu::RouteGroupMenu (Session& s, RouteGroup::Property p) - : _session (s), - _default_properties (p) +RouteGroupMenu::RouteGroupMenu (Session* s, RouteGroup::Property p) + : SessionHandlePtr (s) + , _default_properties (p) { rebuild (0); } @@ -42,17 +42,19 @@ RouteGroupMenu::rebuild (RouteGroup* curr) items().clear (); - items().push_back (MenuElem (_("New group..."), mem_fun (*this, &RouteGroupMenu::new_group))); + items().push_back (MenuElem (_("New group..."), sigc::mem_fun (*this, &RouteGroupMenu::new_group))); items().push_back (SeparatorElem ()); RadioMenuItem::Group group; - items().push_back (RadioMenuElem (group, _("No group"), bind (mem_fun (*this, &RouteGroupMenu::set_group), (RouteGroup *) 0))); + items().push_back (RadioMenuElem (group, _("No group"), sigc::bind (sigc::mem_fun (*this, &RouteGroupMenu::set_group), (RouteGroup *) 0))); if (curr == 0) { static_cast (&items().back())->set_active (); } - _session.foreach_route_group (bind (mem_fun (*this, &RouteGroupMenu::add_item), curr, &group)); + if (_session) { + _session->foreach_route_group (sigc::bind (sigc::mem_fun (*this, &RouteGroupMenu::add_item), curr, &group)); + } } void @@ -60,7 +62,7 @@ RouteGroupMenu::add_item (RouteGroup* rg, RouteGroup* curr, RadioMenuItem::Group { using namespace Menu_Helpers; - items().push_back (RadioMenuElem (*group, rg->name(), bind (mem_fun(*this, &RouteGroupMenu::set_group), rg))); + items().push_back (RadioMenuElem (*group, rg->name(), sigc::bind (sigc::mem_fun(*this, &RouteGroupMenu::set_group), rg))); if (rg == curr) { static_cast (&items().back())->set_active (); @@ -73,17 +75,20 @@ RouteGroupMenu::set_group (RouteGroup* g) GroupSelected (g); } - void RouteGroupMenu::new_group () { - RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active, _default_properties); + if (!_session) { + return; + } + + RouteGroup* g = new RouteGroup (*_session, "", RouteGroup::Active, _default_properties); RouteGroupDialog d (g, Gtk::Stock::NEW); int const r = d.do_run (); if (r == Gtk::RESPONSE_OK) { - _session.add_route_group (g); + _session->add_route_group (g); set_group (g); } else { delete g;