Allow new route group to be created from within the dialog.
git-svn-id: svn://localhost/ardour2/branches/3.0@5248 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
5b7ed60dab
commit
16f18f1879
|
@ -35,6 +35,7 @@
|
||||||
|
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "add_route_dialog.h"
|
#include "add_route_dialog.h"
|
||||||
|
#include "route_group_dialog.h"
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
|
||||||
using namespace Gtk;
|
using namespace Gtk;
|
||||||
|
@ -57,7 +58,8 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
track_button (_("Tracks")),
|
track_button (_("Tracks")),
|
||||||
bus_button (_("Busses")),
|
bus_button (_("Busses")),
|
||||||
routes_adjustment (1, 1, 128, 1, 4),
|
routes_adjustment (1, 1, 128, 1, 4),
|
||||||
routes_spinner (routes_adjustment)
|
routes_spinner (routes_adjustment),
|
||||||
|
new_route_group_button (_("New..."))
|
||||||
{
|
{
|
||||||
if (track_mode_strings.empty()) {
|
if (track_mode_strings.empty()) {
|
||||||
track_mode_strings = I18N (track_mode_names);
|
track_mode_strings = I18N (track_mode_names);
|
||||||
|
@ -92,7 +94,7 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
bus_button.set_group (g);
|
bus_button.set_group (g);
|
||||||
track_button.set_active (true);
|
track_button.set_active (true);
|
||||||
|
|
||||||
Table* table = manage (new Table (5, 2));
|
Table* table = manage (new Table (5, 3));
|
||||||
table->set_spacings (4);
|
table->set_spacings (4);
|
||||||
|
|
||||||
/* add */
|
/* add */
|
||||||
|
@ -108,13 +110,14 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
hbox->set_spacing (6);
|
hbox->set_spacing (6);
|
||||||
hbox->pack_start (track_button, PACK_EXPAND_PADDING);
|
hbox->pack_start (track_button, PACK_EXPAND_PADDING);
|
||||||
hbox->pack_start (bus_button, PACK_EXPAND_PADDING);
|
hbox->pack_start (bus_button, PACK_EXPAND_PADDING);
|
||||||
table->attach (*hbox, 0, 2, 1, 2);
|
table->attach (*hbox, 0, 3, 1, 2);
|
||||||
|
|
||||||
channel_combo.set_name (X_("ChannelCountSelector"));
|
channel_combo.set_name (X_("ChannelCountSelector"));
|
||||||
track_mode_combo.set_name (X_("ChannelCountSelector"));
|
track_mode_combo.set_name (X_("ChannelCountSelector"));
|
||||||
|
|
||||||
track_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
|
track_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
|
||||||
bus_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
|
bus_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
|
||||||
|
new_route_group_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::new_route_group));
|
||||||
|
|
||||||
l = manage (new Label (_("Channel configuration:")));
|
l = manage (new Label (_("Channel configuration:")));
|
||||||
l->set_alignment (1, 0.5);
|
l->set_alignment (1, 0.5);
|
||||||
|
@ -132,6 +135,8 @@ AddRouteDialog::AddRouteDialog (Session & s)
|
||||||
l->set_alignment (1, 0.5);
|
l->set_alignment (1, 0.5);
|
||||||
table->attach (*l, 0, 1, 4, 5);
|
table->attach (*l, 0, 1, 4, 5);
|
||||||
table->attach (route_group_combo, 1, 2, 4, 5, FILL | EXPAND);
|
table->attach (route_group_combo, 1, 2, 4, 5, FILL | EXPAND);
|
||||||
|
table->attach (new_route_group_button, 2, 3, 4, 5);
|
||||||
|
|
||||||
get_vbox()->pack_start (*table);
|
get_vbox()->pack_start (*table);
|
||||||
|
|
||||||
get_vbox()->set_spacing (6);
|
get_vbox()->set_spacing (6);
|
||||||
|
@ -348,3 +353,19 @@ AddRouteDialog::refill_route_groups ()
|
||||||
route_group_combo.set_active (0);
|
route_group_combo.set_active (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
AddRouteDialog::new_route_group ()
|
||||||
|
{
|
||||||
|
RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active);
|
||||||
|
|
||||||
|
RouteGroupDialog d (g, Gtk::Stock::NEW);
|
||||||
|
int const r = d.do_run ();
|
||||||
|
|
||||||
|
if (r == Gtk::RESPONSE_OK) {
|
||||||
|
_session.add_route_group (g);
|
||||||
|
add_route_group (g);
|
||||||
|
route_group_combo.set_active (route_group_combo.get_model()->children().size() - 1);
|
||||||
|
} else {
|
||||||
|
delete g;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -62,6 +62,7 @@ class AddRouteDialog : public Gtk::Dialog
|
||||||
Gtk::ComboBoxText channel_combo;
|
Gtk::ComboBoxText channel_combo;
|
||||||
Gtk::ComboBoxText track_mode_combo;
|
Gtk::ComboBoxText track_mode_combo;
|
||||||
Gtk::ComboBoxText route_group_combo;
|
Gtk::ComboBoxText route_group_combo;
|
||||||
|
Gtk::Button new_route_group_button;
|
||||||
|
|
||||||
std::vector<ARDOUR::TemplateInfo> route_templates;
|
std::vector<ARDOUR::TemplateInfo> route_templates;
|
||||||
|
|
||||||
|
@ -69,6 +70,7 @@ class AddRouteDialog : public Gtk::Dialog
|
||||||
void refill_channel_setups ();
|
void refill_channel_setups ();
|
||||||
void refill_route_groups ();
|
void refill_route_groups ();
|
||||||
void add_route_group (ARDOUR::RouteGroup *);
|
void add_route_group (ARDOUR::RouteGroup *);
|
||||||
|
void new_route_group ();
|
||||||
|
|
||||||
void reset_template_option_visibility ();
|
void reset_template_option_visibility ();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user