X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_options.cc;h=f0ec519775ead8dd10baa5d20564d8910b5e72f4;hb=1648b94905c2a03b82083c767064957c3f347908;hp=199ff45ec42df29845e9ff54cc1532d4f38d6c0a;hpb=fa71d82dda08558caf4a9c5102016f2746883d10;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index 199ff45ec4..f0ec519775 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -29,6 +29,8 @@ #include "ardour/rc_configuration.h" #include "ardour/session.h" +#include "canvas/wave_view.h" + #include "audio_clock.h" #include "ardour_ui.h" #include "actions.h" @@ -324,9 +326,9 @@ ARDOUR_UI::parameter_changed (std::string p) ActionManager::get_action ("Transport", "ToggleFollowEdits")->set_sensitive (false); } - } else if (p == "always-play-range") { + } else if (p == "follow-edits") { - ActionManager::map_some_state ("Transport", "ToggleFollowEdits", &RCConfiguration::get_always_play_range); + ActionManager::map_some_state ("Transport", "ToggleFollowEdits", &RCConfiguration::get_follow_edits); } else if (p == "send-mtc") { @@ -362,15 +364,10 @@ ARDOUR_UI::parameter_changed (std::string p) ActionManager::map_some_state ("Transport", "ToggleClick", &RCConfiguration::get_clicking); } else if (p == "use-video-sync") { ActionManager::map_some_state ("Transport", "ToggleVideoSync", sigc::mem_fun (_session->config, &SessionConfiguration::get_use_video_sync)); - } else if (p == "video-pullup" || p == "timecode-format") { - - synchronize_sync_source_and_video_pullup (); - reset_main_clocks (); - editor->queue_visual_videotimeline_update(); - } else if (p == "sync-source") { synchronize_sync_source_and_video_pullup (); + set_fps_timeout_connection (); } else if (p == "show-track-meters") { editor->toggle_meter_updating(); @@ -395,19 +392,35 @@ ARDOUR_UI::parameter_changed (std::string p) secondary_clock->set_widget_name ("secondary"); } } else if (p == "super-rapid-clock-update") { - stop_clocking (); - start_clocking (); + if (_session) { + stop_clocking (); + start_clocking (); + } } else if (p == "waveform-gradient-depth") { ArdourCanvas::WaveView::set_global_gradient_depth (config()->get_waveform_gradient_depth()); } else if (p == "show-editor-meter") { bool show = Config->get_show_editor_meter(); - if (editor_meter && show) { - meter_box.show(); - editor_meter_peak_display.show(); - } else if (editor_meter && !show) { - meter_box.hide(); - editor_meter_peak_display.hide(); + + if (editor_meter) { + if (meter_box.get_parent()) { + transport_tearoff_hbox.remove (meter_box); + transport_tearoff_hbox.remove (editor_meter_peak_display); + } + + if (show) { + transport_tearoff_hbox.pack_start (meter_box, false, false); + transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false); + meter_box.show(); + editor_meter_peak_display.show(); + } } + } else if (p == "waveform-scale") { + ArdourCanvas::WaveView::set_global_logscaled (Config->get_waveform_scale() == Logarithmic); + } else if (p == "waveform-shape") { + ArdourCanvas::WaveView::set_global_shape (Config->get_waveform_shape() == Rectified + ? ArdourCanvas::WaveView::Rectified : ArdourCanvas::WaveView::Normal); + } else if (p == "show-waveform-clipping") { + ArdourCanvas::WaveView::set_global_show_waveform_clipping (ARDOUR_UI::config()->get_show_waveform_clipping()); } } @@ -416,6 +429,21 @@ ARDOUR_UI::session_parameter_changed (std::string p) { if (p == "native-file-data-format" || p == "native-file-header-format") { update_format (); + } else if (p == "timecode-format") { + set_fps_timeout_connection (); + } else if (p == "video-pullup" || p == "timecode-format") { + set_fps_timeout_connection (); + + synchronize_sync_source_and_video_pullup (); + reset_main_clocks (); + editor->queue_visual_videotimeline_update(); + } else if (p == "track-name-number") { + /* DisplaySuspender triggers _route->redisplay() when going out of scope + * which eventually calls reset_controls_layout_width() and re-sets the + * track-header width. + * see also RouteTimeAxisView::update_track_number_visibility() + */ + DisplaySuspender ds; } }