From 8f7f17187770afc8352dad61ca48ff304c734f68 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 20 Nov 2009 15:26:34 +0000 Subject: make strip-as-GUI-for-send work for metering too ; frame around session summary widget ; tooltip for editor group tabs ; route group dialog name entry is now activatable (return == click on ok) git-svn-id: svn://localhost/ardour2/branches/3.0@6137 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_route_groups.cc | 99 ++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 48 deletions(-) (limited to 'gtk2_ardour/editor_route_groups.cc') diff --git a/gtk2_ardour/editor_route_groups.cc b/gtk2_ardour/editor_route_groups.cc index 7496d50ccb..2a07ca89c1 100644 --- a/gtk2_ardour/editor_route_groups.cc +++ b/gtk2_ardour/editor_route_groups.cc @@ -252,87 +252,90 @@ EditorRouteGroups::new_route_group () } void -EditorRouteGroups::new_from_selection () +EditorRouteGroups::run_new_group_dialog (const RouteList& rl) { RouteGroup* g = new RouteGroup ( *_session, "", RouteGroup::Active, - (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::Select) + (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::RecEnable) ); RouteGroupDialog d (g, Gtk::Stock::NEW); int const r = d.do_run (); - if (r == Gtk::RESPONSE_OK) { + switch (r) { + case Gtk::RESPONSE_OK: + case Gtk::RESPONSE_ACCEPT: _session->add_route_group (g); - - for (TrackSelection::iterator i = _editor->get_selection().tracks.begin(); i != _editor->get_selection().tracks.end(); ++i) { - RouteTimeAxisView* rtv = dynamic_cast (*i); - if (rtv) { - rtv->route()->set_route_group (g, this); - } + for (RouteList::const_iterator i = rl.begin(); i != rl.end(); ++i) { + (*i)->set_route_group (g, this); } - - } else { + break; + default: delete g; } } void -EditorRouteGroups::new_from_rec_enabled () +EditorRouteGroups::new_from_selection () { - RouteGroup* g = new RouteGroup ( - *_session, - "", - RouteGroup::Active, - (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::RecEnable) - ); + if (_editor->get_selection().tracks.empty()) { + return; + } - RouteGroupDialog d (g, Gtk::Stock::NEW); - int const r = d.do_run (); + RouteList rl; - if (r == Gtk::RESPONSE_OK) { - _session->add_route_group (g); - - for (Editor::TrackViewList::const_iterator i = _editor->get_track_views().begin(); i != _editor->get_track_views().end(); ++i) { - RouteTimeAxisView* rtv = dynamic_cast (*i); - if (rtv && rtv->route()->record_enabled()) { - rtv->route()->set_route_group (g, this); - } + for (TrackSelection::iterator i = _editor->get_selection().tracks.begin(); i != _editor->get_selection().tracks.end(); ++i) { + RouteTimeAxisView* rtv = dynamic_cast (*i); + if (rtv) { + rl.push_back (rtv->route()); } + } - } else { - delete g; + if (rl.empty()) { + return; } + + run_new_group_dialog (rl); } void -EditorRouteGroups::new_from_soloed () +EditorRouteGroups::new_from_rec_enabled () { - RouteGroup* g = new RouteGroup ( - *_session, - "", - RouteGroup::Active, - (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit) - ); + RouteList rl; - RouteGroupDialog d (g, Gtk::Stock::NEW); - int const r = d.do_run (); + for (Editor::TrackViewList::const_iterator i = _editor->get_track_views().begin(); i != _editor->get_track_views().end(); ++i) { + RouteTimeAxisView* rtv = dynamic_cast (*i); + if (rtv && rtv->route()->record_enabled()) { + rl.push_back (rtv->route()); + } + } - if (r == Gtk::RESPONSE_OK) { - _session->add_route_group (g); + if (rl.empty()) { + return; + } - for (Editor::TrackViewList::const_iterator i = _editor->get_track_views().begin(); i != _editor->get_track_views().end(); ++i) { - RouteTimeAxisView* rtv = dynamic_cast (*i); - if (rtv && !rtv->route()->is_master() && rtv->route()->soloed()) { - rtv->route()->set_route_group (g, this); - } + run_new_group_dialog (rl); +} + +void +EditorRouteGroups::new_from_soloed () +{ + RouteList rl; + + for (Editor::TrackViewList::const_iterator i = _editor->get_track_views().begin(); i != _editor->get_track_views().end(); ++i) { + RouteTimeAxisView* rtv = dynamic_cast (*i); + if (rtv && !rtv->route()->is_master() && rtv->route()->soloed()) { + rl.push_back (rtv->route()); } + } - } else { - delete g; + if (rl.empty()) { + return; } + + run_new_group_dialog (rl); } void -- cgit v1.2.3