summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_route_groups.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-20 15:26:34 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-20 15:26:34 +0000
commit8f7f17187770afc8352dad61ca48ff304c734f68 (patch)
tree8877485412c5e1685d777e2660ac69ad1d561d33 /gtk2_ardour/editor_route_groups.cc
parent648450781b8e5a39fd89c1a42f34b601c97df0e2 (diff)
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
Diffstat (limited to 'gtk2_ardour/editor_route_groups.cc')
-rw-r--r--gtk2_ardour/editor_route_groups.cc99
1 files changed, 51 insertions, 48 deletions
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<RouteTimeAxisView*> (*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<RouteTimeAxisView*> (*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<RouteTimeAxisView*> (*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<RouteTimeAxisView*> (*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<RouteTimeAxisView*> (*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<RouteTimeAxisView*> (*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