ARDOUR_UI::toggle_auto_return_state (AutoReturnTarget t)
{
AutoReturnTarget art = Config->get_auto_return_target_list ();
- 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 {
+ if (art & t) {
Config->set_auto_return_target_list (AutoReturnTarget (art & ~t));
+ } else {
+ Config->set_auto_return_target_list (AutoReturnTarget (art | t));
}
}
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"));
} 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));
}
}