From a880cb543d4bc73f477198af50a2f76337e718c6 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 25 Jan 2012 18:45:19 +0000 Subject: some improvements to the add track/bus dialog to make it more obvious how to add MIDI tracks git-svn-id: svn://localhost/ardour2/branches/3.0@11348 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/add_route_dialog.cc | 51 +++++++++++++++++++---------------------- gtk2_ardour/add_route_dialog.h | 4 ++-- gtk2_ardour/ardour_ui.cc | 21 +++++------------ 3 files changed, 32 insertions(+), 44 deletions(-) diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index 9cfb747397..2de735245a 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -61,7 +61,7 @@ AddRouteDialog::AddRouteDialog (Session* s) set_resizable (false); name_template_entry.set_name (X_("AddRouteDialogNameTemplateEntry")); - routes_spinner.set_name (X_("AddRouteDialogSpinner")); + // routes_spinner.set_name (X_("AddRouteDialogSpinner")); channel_combo.set_name (X_("ChannelCountSelector")); mode_combo.set_name (X_("ChannelCountSelector")); @@ -71,8 +71,9 @@ AddRouteDialog::AddRouteDialog (Session* s) channel_combo.set_active_text (channel_combo_strings.front()); - track_bus_combo.append_text (_("tracks")); - track_bus_combo.append_text (_("busses")); + track_bus_combo.append_text (_("Audio Tracks")); + track_bus_combo.append_text (_("MIDI Tracks")); + track_bus_combo.append_text (_("Busses")); track_bus_combo.set_active (0); VBox* vbox = manage (new VBox); @@ -186,12 +187,10 @@ AddRouteDialog::maybe_update_name_template_entry () return; } - if (track ()) { - if (type () == DataType::MIDI) { - name_template_entry.set_text (_("MIDI")); - } else { - name_template_entry.set_text (_("Audio")); - } + if (audio_tracks_wanted ()) { + name_template_entry.set_text (_("Audio")); + } else if (midi_tracks_wanted()) { + name_template_entry.set_text (_("MIDI")); } else { name_template_entry.set_text (_("Bus")); } @@ -200,22 +199,30 @@ AddRouteDialog::maybe_update_name_template_entry () void AddRouteDialog::track_type_chosen () { - mode_combo.set_sensitive (track ()); + if (midi_tracks_wanted()) { + channel_combo.set_sensitive (false); + mode_combo.set_sensitive (false); + } else if (audio_tracks_wanted()) { + mode_combo.set_sensitive (true); + channel_combo.set_sensitive (true); + } else { + mode_combo.set_sensitive (false); + channel_combo.set_sensitive (true); + } + maybe_update_name_template_entry (); } bool -AddRouteDialog::track () +AddRouteDialog::audio_tracks_wanted () { return track_bus_combo.get_active_row_number () == 0; } -ARDOUR::DataType -AddRouteDialog::type () +bool +AddRouteDialog::midi_tracks_wanted () { - return (channel_combo.get_active_text() == _("MIDI")) - ? ARDOUR::DataType::MIDI - : ARDOUR::DataType::AUDIO; + return track_bus_combo.get_active_row_number () == 1; } string @@ -239,10 +246,7 @@ AddRouteDialog::refill_track_modes () if (!ARDOUR::Profile->get_sae ()) { s.push_back (_("Non Layered")); - - if (type() != DataType::MIDI) { - s.push_back (_("Tape")); - } + s.push_back (_("Tape")); } set_popdown_strings (mode_combo, s); @@ -329,13 +333,6 @@ AddRouteDialog::refill_channel_setups () chn.name = "separator"; channel_setups.push_back (chn); - chn.name = _("MIDI"); - chn.channels = 0; - channel_setups.push_back (chn); - - chn.name = "separator"; - channel_setups.push_back (chn); - ARDOUR::find_route_templates (route_templates); if (!ARDOUR::Profile->get_sae()) { diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 571420c4be..49b3fc47cd 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -45,14 +45,14 @@ class AddRouteDialog : public ArdourDialog AddRouteDialog (ARDOUR::Session*); ~AddRouteDialog (); - bool track (); + bool audio_tracks_wanted (); + bool midi_tracks_wanted (); int channels (); int count (); std::string name_template (); std::string track_template (); - ARDOUR::DataType type(); ARDOUR::TrackMode mode(); ARDOUR::RouteGroup* route_group (); diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index b750809b33..7845918870 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -3260,6 +3260,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window) if (add_route_dialog == 0) { add_route_dialog = new AddRouteDialog (_session); + add_route_dialog->set_position (WIN_POS_MOUSE); if (float_window) { add_route_dialog->set_transient_for (*float_window); } @@ -3296,7 +3297,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window) uint32_t input_chan = add_route_dialog->channels (); uint32_t output_chan; string name_template = add_route_dialog->name_template (); - bool track = add_route_dialog->track (); RouteGroup* route_group = add_route_dialog->route_group (); AutoConnectOption oac = Config->get_output_auto_connect(); @@ -3309,21 +3309,12 @@ ARDOUR_UI::add_route (Gtk::Window* float_window) /* XXX do something with name template */ - if (add_route_dialog->type() == ARDOUR::DataType::MIDI) { - if (track) { - session_add_midi_track (route_group, count, name_template); - } else { - MessageDialog msg (*editor, - _("Sorry, MIDI Busses are not supported at this time.")); - msg.run (); - //session_add_midi_bus(); - } + if (add_route_dialog->midi_tracks_wanted()) { + session_add_midi_track (route_group, count, name_template); + } else if (add_route_dialog->audio_tracks_wanted()) { + session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count, name_template); } else { - if (track) { - session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count, name_template); - } else { - session_add_audio_bus (input_chan, output_chan, route_group, count, name_template); - } + session_add_audio_bus (input_chan, output_chan, route_group, count, name_template); } } -- cgit v1.2.3