summaryrefslogtreecommitdiff
path: root/gtk2_ardour/add_route_dialog.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-06-20 15:40:26 +0000
committerCarl Hetherington <carl@carlh.net>2009-06-20 15:40:26 +0000
commitf0bf3a0c190ced488d1520435df8234ef50971d6 (patch)
tree5e437385cf03c2abf53d57742c9351b99d5dedbf /gtk2_ardour/add_route_dialog.cc
parent6b20256ad47de1b4c02553f62c31e7e5c8b0cac8 (diff)
Allow edit group creation from the route UI's menu. Allow new tracks to be put in particular edit groups.
git-svn-id: svn://localhost/ardour2/branches/3.0@5226 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/add_route_dialog.cc')
-rw-r--r--gtk2_ardour/add_route_dialog.cc95
1 files changed, 57 insertions, 38 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index 6b7b5edc97..c08120dd85 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -23,12 +23,14 @@
#include <sigc++/bind.h>
#include <gtkmm/stock.h>
#include <gtkmm/separator.h>
+#include <gtkmm/table.h>
#include "pbd/error.h"
#include "pbd/convert.h"
#include "gtkmm2ext/utils.h"
#include "ardour/profile.h"
#include "ardour/template_utils.h"
+#include "ardour/route_group.h"
#include "ardour/session.h"
#include "utils.h"
@@ -49,8 +51,9 @@ static const char* track_mode_names[] = {
0
};
-AddRouteDialog::AddRouteDialog ()
+AddRouteDialog::AddRouteDialog (Session & s)
: Dialog (_("ardour: add track/bus")),
+ _session (s),
track_button (_("Tracks")),
bus_button (_("Busses")),
routes_adjustment (1, 1, 128, 1, 4),
@@ -77,65 +80,65 @@ AddRouteDialog::AddRouteDialog ()
track_button.set_name ("AddRouteDialogRadioButton");
bus_button.set_name ("AddRouteDialogRadioButton");
routes_spinner.set_name ("AddRouteDialogSpinner");
+
+ refill_channel_setups ();
+ set_popdown_strings (track_mode_combo, track_mode_strings, true);
+
+ edit_group_combo.append_text (_("No group"));
+ _session.foreach_edit_group (mem_fun (*this, &AddRouteDialog::add_edit_group));
+ channel_combo.set_active_text (channel_combo_strings.front());
+ track_mode_combo.set_active_text (track_mode_strings.front());
+ edit_group_combo.set_active (0);
+
RadioButton::Group g = track_button.get_group();
bus_button.set_group (g);
track_button.set_active (true);
- /* add */
+ Table* table = manage (new Table (5, 2));
+ table->set_spacings (4);
- HBox* hbox1 = manage (new HBox);
- hbox1->set_spacing (6);
- Label* label1 = manage (new Label (_("Add this many:")));
- hbox1->pack_start (*label1, PACK_SHRINK);
- hbox1->pack_start (routes_spinner, PACK_SHRINK);
+ /* add */
- HBox* hbox2 = manage (new HBox);
- hbox2->set_spacing (6);
- hbox2->set_border_width (6);
- hbox2->pack_start (*hbox1, PACK_EXPAND_WIDGET);
+ Label* l = manage (new Label (_("Add this many:")));
+ l->set_alignment (1, 0.5);
+ table->attach (*l, 0, 1, 0, 1);
+ table->attach (routes_spinner, 1, 2, 0, 1, FILL | EXPAND);
/* track/bus choice & modes */
- HBox* hbox5 = manage (new HBox);
- hbox5->set_spacing (6);
- hbox5->pack_start (track_button, PACK_EXPAND_PADDING);
- hbox5->pack_start (bus_button, PACK_EXPAND_PADDING);
+ HBox* hbox = manage (new HBox);
+ hbox->set_spacing (6);
+ hbox->pack_start (track_button, PACK_EXPAND_PADDING);
+ hbox->pack_start (bus_button, PACK_EXPAND_PADDING);
+ table->attach (*hbox, 0, 2, 1, 2);
channel_combo.set_name (X_("ChannelCountSelector"));
track_mode_combo.set_name (X_("ChannelCountSelector"));
- refill_channel_setups ();
- set_popdown_strings (track_mode_combo, track_mode_strings, true);
-
- channel_combo.set_active_text (channel_combo_strings.front());
- track_mode_combo.set_active_text (track_mode_strings.front());
-
track_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
bus_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
-
- VBox* vbox1 = manage (new VBox);
- vbox1->set_spacing (6);
- vbox1->set_border_width (6);
-
- Frame* frame1 = manage (new Frame (_("Channel Configuration")));
- frame1->add (channel_combo);
- Frame* frame2 = manage (new Frame (_("Track Mode")));
- frame2->add (track_mode_combo);
- vbox1->pack_start (*hbox5, PACK_SHRINK);
- vbox1->pack_start (*frame1, PACK_SHRINK);
+ l = manage (new Label (_("Channel configuration:")));
+ l->set_alignment (1, 0.5);
+ table->attach (*l, 0, 1, 2, 3);
+ table->attach (channel_combo, 1, 2, 2, 3, FILL | EXPAND);
- if (!ARDOUR::Profile->get_sae()) {
- vbox1->pack_start (*frame2, PACK_SHRINK);
+ if (!ARDOUR::Profile->get_sae ()) {
+ l = manage (new Label (_("Track mode:")));
+ l->set_alignment (1, 0.5);
+ table->attach (*l, 0, 1, 3, 4);
+ table->attach (track_mode_combo, 1, 2, 3, 4, FILL | EXPAND);
}
+
+ l = manage (new Label (_("Add to edit group:")));
+ l->set_alignment (1, 0.5);
+ table->attach (*l, 0, 1, 4, 5);
+ table->attach (edit_group_combo, 1, 2, 4, 5, FILL | EXPAND);
+ get_vbox()->pack_start (*table);
get_vbox()->set_spacing (6);
get_vbox()->set_border_width (6);
-
- get_vbox()->pack_start (*hbox2, PACK_SHRINK);
- get_vbox()->pack_start (*vbox1, PACK_SHRINK);
-
get_vbox()->show_all ();
/* track template info will be managed whenever
@@ -320,3 +323,19 @@ AddRouteDialog::refill_channel_setups ()
set_popdown_strings (channel_combo, channel_combo_strings, true);
channel_combo.set_active_text (channel_combo_strings.front());
}
+
+void
+AddRouteDialog::add_edit_group (RouteGroup* g)
+{
+ edit_group_combo.append_text (g->name ());
+}
+
+RouteGroup*
+AddRouteDialog::edit_group ()
+{
+ if (edit_group_combo.get_active_row_number () == 0) {
+ return 0;
+ }
+
+ return _session.edit_group_by_name (edit_group_combo.get_active_text());
+}