properly track, update, maintain and set auto return state
Conflicts: gtk2_ardour/ardour_ui_options.cc
This commit is contained in:
parent
682d8ae064
commit
745a235b9d
@ -4875,10 +4875,31 @@ void
|
||||
ARDOUR_UI::toggle_auto_return_state (AutoReturnTarget t)
|
||||
{
|
||||
AutoReturnTarget art = Config->get_auto_return_target_list ();
|
||||
if (art & t) {
|
||||
Config->set_auto_return_target_list (AutoReturnTarget (art & ~t));
|
||||
} else {
|
||||
CheckMenuItem* check_menu_item = 0;
|
||||
|
||||
switch (t) {
|
||||
case LastLocate:
|
||||
check_menu_item = auto_return_last_locate;
|
||||
break;
|
||||
case Loop:
|
||||
check_menu_item = auto_return_loop;
|
||||
break;
|
||||
case RangeSelectionStart:
|
||||
check_menu_item = auto_return_range_selection;
|
||||
break;
|
||||
case RegionSelectionStart:
|
||||
check_menu_item = auto_return_region_selection;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!check_menu_item) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (check_menu_item->get_active()) {
|
||||
Config->set_auto_return_target_list (AutoReturnTarget (art | t));
|
||||
} else {
|
||||
Config->set_auto_return_target_list (AutoReturnTarget (art & ~t));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -265,6 +265,18 @@ ARDOUR_UI::setup_transport ()
|
||||
auto_return_region_selection->show ();
|
||||
auto_return_dropdown.AddMenuElem (Gtk::Menu_Helpers::CheckMenuElem (*auto_return_region_selection));
|
||||
|
||||
auto_return_range_selection = manage (new CheckMenuItem (_("Play from range selection")));
|
||||
auto_return_range_selection->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_auto_return_state), RangeSelectionStart));
|
||||
auto_return_range_selection->show ();
|
||||
auto_return_dropdown.AddMenuElem (Gtk::Menu_Helpers::CheckMenuElem (*auto_return_range_selection));
|
||||
|
||||
auto_return_loop = manage (new CheckMenuItem (_("Play from loop")));
|
||||
auto_return_loop->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_auto_return_state), Loop));
|
||||
auto_return_loop->show ();
|
||||
auto_return_dropdown.AddMenuElem (Gtk::Menu_Helpers::CheckMenuElem (*auto_return_loop));
|
||||
|
||||
auto_return_dropdown.AddMenuElem (Gtk::Menu_Helpers::MenuElem (_("Disable/Enable All Options"), sigc::mem_fun (*this, &ARDOUR_UI::toggle_all_auto_return)));
|
||||
|
||||
follow_edits_button.set_text(_("Follow Edits"));
|
||||
|
||||
// auto_input_button.set_text (_("Auto Input"));
|
||||
|
@ -422,6 +422,12 @@ ARDOUR_UI::parameter_changed (std::string p)
|
||||
} else if (p == "waveform-cache-size") {
|
||||
/* GUI option has units of megabytes; image cache uses units of bytes */
|
||||
ArdourCanvas::WaveView::set_image_cache_size (ARDOUR_UI::config()->get_waveform_cache_size() * 1048576);
|
||||
} else if (p == "auto-return-target-list") {
|
||||
AutoReturnTarget art = Config->get_auto_return_target_list ();
|
||||
auto_return_loop->set_active ((bool) (art & Loop));
|
||||
auto_return_range_selection->set_active ((bool) (art & RangeSelectionStart));
|
||||
auto_return_region_selection->set_active ((bool) (art & RegionSelectionStart));
|
||||
auto_return_last_locate->set_active ((bool) (art & LastLocate));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user