Save last route type
This commit is contained in:
parent
9178ca635a
commit
2a4ebd17d6
@ -361,6 +361,10 @@ AddRouteDialog::on_response (int r)
|
||||
UIConfiguration::instance().set_show_on_cue_page (show_on_cue_page());
|
||||
UIConfiguration::instance().set_insert_at_position ((int) insert_at());
|
||||
|
||||
/* save last route type */
|
||||
auto* node = _session->extra_xml ("AddRouteDialog", true);
|
||||
node->set_property (X_("LastRouteType"), enum_2_string (type_wanted ()));
|
||||
|
||||
reset_name_edited ();
|
||||
/* Don't call ArdourDialog::on_response() because that will
|
||||
automatically hide the dialog.
|
||||
@ -567,7 +571,7 @@ AddRouteDialog::get_template_path ()
|
||||
AddRouteDialog::TypeWanted
|
||||
AddRouteDialog::type_wanted()
|
||||
{
|
||||
if (trk_template_chooser.get_selection()->count_selected_rows() != 1) {
|
||||
if (trk_template_chooser.get_selection ()->count_selected_rows () != 1) {
|
||||
return AudioTrack;
|
||||
}
|
||||
TreeIter iter = trk_template_chooser.get_selection ()->get_selected ();
|
||||
@ -576,9 +580,9 @@ AddRouteDialog::type_wanted()
|
||||
const string str = (*iter)[track_template_columns.name];
|
||||
if (str == _("Audio Busses")) {
|
||||
return AudioBus;
|
||||
} else if (str == _("MIDI Busses")){
|
||||
} else if (str == _("MIDI Busses")) {
|
||||
return MidiBus;
|
||||
} else if (str == _("MIDI Tracks")){
|
||||
} else if (str == _("MIDI Tracks")) {
|
||||
return MidiTrack;
|
||||
} else if (str == _("Audio Tracks")) {
|
||||
return AudioTrack;
|
||||
@ -587,11 +591,31 @@ AddRouteDialog::type_wanted()
|
||||
} else if (str == _("Foldback Busses")) {
|
||||
return FoldbackBus;
|
||||
} else {
|
||||
assert (0);
|
||||
return AudioTrack;
|
||||
}
|
||||
}
|
||||
|
||||
std::string
|
||||
AddRouteDialog::type_wanted_to_localized_string (AddRouteDialog::TypeWanted type_wanted) {
|
||||
switch(type_wanted) {
|
||||
case AudioBus:
|
||||
return _("Audio Busses");
|
||||
case MidiBus:
|
||||
return _("MIDI Busses");
|
||||
case MidiTrack:
|
||||
return _("MIDI Tracks");
|
||||
case AudioTrack:
|
||||
return _("Audio Tracks");
|
||||
case VCAMaster:
|
||||
return _("VCA Masters");
|
||||
case FoldbackBus:
|
||||
return _("Foldback Busses");
|
||||
default:
|
||||
return _("Audio Tracks");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
AddRouteDialog::maybe_update_name_template_entry ()
|
||||
{
|
||||
@ -990,6 +1014,26 @@ AddRouteDialog::refill_channel_setups ()
|
||||
row[track_template_columns.modified_with] = x->modified_with;
|
||||
}
|
||||
|
||||
/* load and select last route type */
|
||||
if (_session) {
|
||||
auto node = _session->extra_xml (X_("AddRouteDialog"), false);
|
||||
std::string last_route{};
|
||||
|
||||
if (node && node->get_property (X_ ("LastRouteType"), last_route)) {
|
||||
auto type_wanted = static_cast<TypeWanted> (string_2_enum (last_route, TypeWanted));
|
||||
|
||||
for (const auto& row : trk_template_chooser.get_model ()->children ()) {
|
||||
std::string node_value{};
|
||||
row.get_value (0, node_value);
|
||||
|
||||
if (node_value == type_wanted_to_localized_string (type_wanted)) {
|
||||
trk_template_chooser.get_selection ()->select (row);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set_popdown_strings (channel_combo, channel_combo_strings);
|
||||
|
||||
if (!channel_current_choice.empty()) {
|
||||
|
@ -47,6 +47,7 @@
|
||||
#include "ardour/plugin.h"
|
||||
#include "ardour/types.h"
|
||||
#include "ardour/template_utils.h"
|
||||
#include "ardour/route_group.h"
|
||||
|
||||
#include "ardour_dialog.h"
|
||||
#include "instrument_selector.h"
|
||||
@ -117,17 +118,18 @@ private:
|
||||
Gtk::ComboBoxText strict_io_combo;
|
||||
Gtk::CheckButton show_on_cue_chkbox;
|
||||
|
||||
void track_type_chosen ();
|
||||
void refill_channel_setups ();
|
||||
void refill_route_groups ();
|
||||
void refill_track_modes ();
|
||||
void add_route_group (ARDOUR::RouteGroup*);
|
||||
void group_changed ();
|
||||
void channel_combo_changed ();
|
||||
bool channel_separator (const Glib::RefPtr<Gtk::TreeModel>& m, const Gtk::TreeModel::iterator& i);
|
||||
bool route_separator (const Glib::RefPtr<Gtk::TreeModel>& m, const Gtk::TreeModel::iterator& i);
|
||||
void maybe_update_name_template_entry ();
|
||||
void instrument_changed ();
|
||||
void track_type_chosen ();
|
||||
std::string type_wanted_to_localized_string (TypeWanted type_wanted);
|
||||
void refill_channel_setups ();
|
||||
void refill_route_groups ();
|
||||
void refill_track_modes ();
|
||||
void add_route_group (ARDOUR::RouteGroup*);
|
||||
void group_changed ();
|
||||
void channel_combo_changed ();
|
||||
bool channel_separator (const Glib::RefPtr<Gtk::TreeModel>& m, const Gtk::TreeModel::iterator& i);
|
||||
bool route_separator (const Glib::RefPtr<Gtk::TreeModel>& m, const Gtk::TreeModel::iterator& i);
|
||||
void maybe_update_name_template_entry ();
|
||||
void instrument_changed ();
|
||||
|
||||
struct TrackTemplateColumns : public Gtk::TreeModel::ColumnRecord {
|
||||
TrackTemplateColumns ()
|
||||
|
@ -24,12 +24,11 @@
|
||||
|
||||
#include "pbd/enumwriter.h"
|
||||
|
||||
#include "widgets/ardour_icon.h"
|
||||
|
||||
#include "add_route_dialog.h"
|
||||
#include "audio_clock.h"
|
||||
#include "editing.h"
|
||||
#include "enums.h"
|
||||
#include "editor_items.h"
|
||||
#include "enums.h"
|
||||
#include "startup_fsm.h"
|
||||
|
||||
using namespace std;
|
||||
@ -60,11 +59,12 @@ setup_gtk_ardour_enums ()
|
||||
StartupFSM::MainState startup_state;
|
||||
StartupFSM::DialogID startup_dialog;
|
||||
Gtk::ResponseType dialog_response;
|
||||
AddRouteDialog::TypeWanted type_wanted;
|
||||
|
||||
#define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
|
||||
#define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
|
||||
#define REGISTER_ENUM(e) i.push_back (e); s.push_back (#e)
|
||||
#define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
|
||||
#define REGISTER_ENUM(e) i.emplace_back (e); s.emplace_back (#e)
|
||||
#define REGISTER_CLASS_ENUM(t,e) i.emplace_back (t::e); s.emplace_back (#e)
|
||||
|
||||
REGISTER_CLASS_ENUM (AudioClock, Timecode);
|
||||
REGISTER_CLASS_ENUM (AudioClock, BBT);
|
||||
@ -217,4 +217,12 @@ setup_gtk_ardour_enums ()
|
||||
REGISTER_ENUM (RESPONSE_APPLY);
|
||||
REGISTER_ENUM (RESPONSE_HELP);
|
||||
REGISTER (dialog_response);
|
||||
|
||||
REGISTER_CLASS_ENUM (AddRouteDialog, AudioTrack);
|
||||
REGISTER_CLASS_ENUM (AddRouteDialog, MidiTrack);
|
||||
REGISTER_CLASS_ENUM (AddRouteDialog, AudioBus);
|
||||
REGISTER_CLASS_ENUM (AddRouteDialog, MidiBus);
|
||||
REGISTER_CLASS_ENUM (AddRouteDialog, VCAMaster);
|
||||
REGISTER_CLASS_ENUM (AddRouteDialog, FoldbackBus);
|
||||
REGISTER (type_wanted);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user