From 82440265339b69983eda71167a563407bb35acb8 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 28 Feb 2019 23:54:42 +0100 Subject: Consolidate ToggleAction cast, use new API Furthermore we can assume that all Actions are registered and Unregistered actions will ::abort() execution. --- gtk2_ardour/ardour_ui.cc | 15 ++-- gtk2_ardour/ardour_ui2.cc | 12 +--- gtk2_ardour/ardour_ui_dialogs.cc | 14 ++-- gtk2_ardour/ardour_ui_options.cc | 147 +++++++++++---------------------------- gtk2_ardour/editor_actions.cc | 104 ++++++++------------------- gtk2_ardour/editor_mouse.cc | 9 +-- gtk2_ardour/editor_regions.cc | 9 +-- gtk2_ardour/step_entry.cc | 3 +- gtk2_ardour/time_info_box.cc | 11 ++- 9 files changed, 91 insertions(+), 233 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 25af678bd3..dce3fbfac8 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -5996,9 +5996,8 @@ ARDOUR_UI::monitor_dim_all () } boost::shared_ptr _monitor = mon->monitor_control (); - Glib::RefPtr act = ActionManager::get_action (X_("Monitor"), "monitor-dim-all"); - assert (act); Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - assert (tact); _monitor->set_dim_all (tact->get_active()); + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Monitor"), "monitor-dim-all"); + _monitor->set_dim_all (tact->get_active()); } void @@ -6010,9 +6009,8 @@ ARDOUR_UI::monitor_cut_all () } boost::shared_ptr _monitor = mon->monitor_control (); - Glib::RefPtr act = ActionManager::get_action (X_("Monitor"), "monitor-cut-all"); - assert (act); Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - assert (tact); _monitor->set_cut_all (tact->get_active()); + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Monitor"), "monitor-cut-all"); + _monitor->set_cut_all (tact->get_active()); } void @@ -6024,7 +6022,6 @@ ARDOUR_UI::monitor_mono () } boost::shared_ptr _monitor = mon->monitor_control (); - Glib::RefPtr act = ActionManager::get_action (X_("Monitor"), "monitor-mono"); - assert (act); Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - assert (tact);_monitor->set_mono (tact->get_active()); + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Monitor"), "monitor-mono"); + _monitor->set_mono (tact->get_active()); } diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index d0d51fbda6..91761a162c 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -594,9 +594,8 @@ ARDOUR_UI::error_alert_press (GdkEventButton* ev) if (ev->button == 1) { if (_log_not_acknowledged == LogLevelError) { // just acknowledge the error, don't hide the log if it's already visible - RefPtr act = ActionManager::get_action (X_("Editor"), X_("toggle-log-window")); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (tact && tact->get_active()) { + RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("toggle-log-window")); + if (tact->get_active()) { do_toggle = false; } } @@ -781,12 +780,7 @@ ARDOUR_UI::sync_button_clicked (GdkEventButton* ev) void ARDOUR_UI::toggle_follow_edits () { - RefPtr act = ActionManager::get_action (X_("Transport"), X_("ToggleFollowEdits")); - assert (act); - - RefPtr tact = RefPtr::cast_dynamic (act); - assert (tact); - + RefPtr tact = ActionManager::get_toggle_action (X_("Transport"), X_("ToggleFollowEdits")); UIConfiguration::instance().set_follow_edits (tact->get_active ()); } diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 287c9128b4..eac41309c8 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -941,14 +941,10 @@ ARDOUR_UI::editor_meter_peak_button_release (GdkEventButton* ev) void ARDOUR_UI::toggle_mixer_space() { - Glib::RefPtr act = ActionManager::get_action ("Common", "ToggleMaximalMixer"); - - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - if (tact->get_active()) { - mixer->maximise_mixer_space (); - } else { - mixer->restore_mixer_space (); - } + Glib::RefPtr tact = ActionManager::get_toggle_action ("Common", "ToggleMaximalMixer"); + if (tact->get_active()) { + mixer->maximise_mixer_space (); + } else { + mixer->restore_mixer_space (); } } diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index 3f2b1edc68..27aca563bb 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -129,14 +129,7 @@ ARDOUR_UI::toggle_click () void ARDOUR_UI::toggle_session_monitoring_in () { - Glib::RefPtr act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn")); - if (!act) { - return; - } - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (!tact) { - return; - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Transport"), X_("SessionMonitorIn")); if (tact->get_active() && _session->config.get_session_monitoring () == MonitorInput) { return; @@ -155,14 +148,7 @@ ARDOUR_UI::toggle_session_monitoring_in () void ARDOUR_UI::toggle_session_monitoring_disk () { - Glib::RefPtr act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk")); - if (!act) { - return; - } - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (!tact) { - return; - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Transport"), X_("SessionMonitorDisk")); if (tact->get_active() && _session->config.get_session_monitoring () == MonitorDisk) { return; } @@ -180,15 +166,11 @@ ARDOUR_UI::toggle_session_monitoring_disk () void ARDOUR_UI::unset_dual_punch () { - Glib::RefPtr action = ActionManager::get_action ("Transport", "TogglePunch"); - - if (action) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(action); - if (tact) { - ignore_dual_punch = true; - tact->set_active (false); - ignore_dual_punch = false; - } + Glib::RefPtr tact = ActionManager::get_toggle_action ("Transport", "TogglePunch"); + if (tact) { + ignore_dual_punch = true; + tact->set_active (false); + ignore_dual_punch = false; } } @@ -199,42 +181,20 @@ ARDOUR_UI::toggle_punch () return; } - Glib::RefPtr action = ActionManager::get_action ("Transport", "TogglePunch"); + Glib::RefPtr tact = ActionManager::get_toggle_action ("Transport", "TogglePunch"); - if (action) { + /* drive the other two actions from this one */ + Glib::RefPtr in_action = ActionManager::get_toggle_action ("Transport", "TogglePunchIn"); + Glib::RefPtr out_action = ActionManager::get_toggle_action ("Transport", "TogglePunchOut"); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(action); - - if (!tact) { - return; - } - - /* drive the other two actions from this one */ - - Glib::RefPtr in_action = ActionManager::get_action ("Transport", "TogglePunchIn"); - Glib::RefPtr out_action = ActionManager::get_action ("Transport", "TogglePunchOut"); - - if (in_action && out_action) { - Glib::RefPtr tiact = Glib::RefPtr::cast_dynamic(in_action); - Glib::RefPtr toact = Glib::RefPtr::cast_dynamic(out_action); - tiact->set_active (tact->get_active()); - toact->set_active (tact->get_active()); - } - } + in_action->set_active (tact->get_active()); + out_action->set_active (tact->get_active()); } void ARDOUR_UI::toggle_punch_in () { - Glib::RefPtr act = ActionManager::get_action (X_("Transport"), X_("TogglePunchIn")); - if (!act) { - return; - } - - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (!tact) { - return; - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Transport"), X_("TogglePunchIn")); if (tact->get_active() != _session->config.get_punch_in()) { _session->config.set_punch_in (tact->get_active ()); @@ -252,15 +212,7 @@ ARDOUR_UI::toggle_punch_in () void ARDOUR_UI::toggle_punch_out () { - Glib::RefPtr act = ActionManager::get_action (X_("Transport"), X_("TogglePunchOut")); - if (!act) { - return; - } - - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (!tact) { - return; - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Transport"), X_("TogglePunchOut")); if (tact->get_active() != _session->config.get_punch_out()) { _session->config.set_punch_out (tact->get_active ()); @@ -278,17 +230,9 @@ ARDOUR_UI::toggle_punch_out () void ARDOUR_UI::show_loop_punch_ruler_and_disallow_hide () { - Glib::RefPtr act = ActionManager::get_action (X_("Rulers"), "toggle-loop-punch-ruler"); - if (!act) { - return; - } - - act->set_sensitive (false); + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Rulers"), "toggle-loop-punch-ruler"); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (!tact) { - return; - } + tact->set_sensitive (false); if (!tact->get_active()) { tact->set_active (); @@ -311,25 +255,18 @@ ARDOUR_UI::reenable_hide_loop_punch_ruler_if_appropriate () void ARDOUR_UI::toggle_video_sync() { - Glib::RefPtr act = ActionManager::get_action ("Transport", "ToggleVideoSync"); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - _session->config.set_use_video_sync (tact->get_active()); - } + Glib::RefPtr tact = ActionManager::get_toggle_action ("Transport", "ToggleVideoSync"); + _session->config.set_use_video_sync (tact->get_active()); } void ARDOUR_UI::toggle_editing_space() { - Glib::RefPtr act = ActionManager::get_action ("Common", "ToggleMaximalEditor"); - - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - if (tact->get_active()) { - maximise_editing_space (); - } else { - restore_editing_space (); - } + Glib::RefPtr tact = ActionManager::get_toggle_action ("Common", "ToggleMaximalEditor"); + if (tact->get_active()) { + maximise_editing_space (); + } else { + restore_editing_space (); } } @@ -398,27 +335,21 @@ ARDOUR_UI::parameter_changed (std::string p) } else if (p == "auto-input") { ActionManager::map_some_state ("Transport", "ToggleAutoInput", sigc::mem_fun (_session->config, &SessionConfiguration::get_auto_input)); } else if (p == "session-monitoring") { - Glib::RefPtr iact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn")); - Glib::RefPtr dact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk")); - if (iact && dact) { - Glib::RefPtr tdact = Glib::RefPtr::cast_dynamic(dact); - Glib::RefPtr tiact = Glib::RefPtr::cast_dynamic(iact); - if (tdact && tiact) { - switch (_session->config.get_session_monitoring ()) { - case MonitorDisk: - tdact->set_active (true); - tiact->set_active (false); - break; - case MonitorInput: - tiact->set_active (true); - tdact->set_active (false); - break; - default: - tdact->set_active (false); - tiact->set_active (false); - break; - } - } + Glib::RefPtr tiact = ActionManager::get_toggle_action (X_("Transport"), X_("SessionMonitorIn")); + Glib::RefPtr tdact = ActionManager::get_toggle_action (X_("Transport"), X_("SessionMonitorDisk")); + switch (_session->config.get_session_monitoring ()) { + case MonitorDisk: + tdact->set_active (true); + tiact->set_active (false); + break; + case MonitorInput: + tiact->set_active (true); + tdact->set_active (false); + break; + default: + tdact->set_active (false); + tiact->set_active (false); + break; } } else if (p == "punch-out") { ActionManager::map_some_state ("Transport", "TogglePunchOut", sigc::mem_fun (_session->config, &SessionConfiguration::get_punch_out)); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index e689f7dee6..6c28a0a943 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -801,14 +801,10 @@ Editor::load_bindings () void Editor::toggle_skip_playback () { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), "toggle-skip-playback"); - - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - bool s = Config->get_skip_playback (); - if (tact->get_active() != s) { - Config->set_skip_playback (tact->get_active()); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), "toggle-skip-playback"); + bool s = Config->get_skip_playback (); + if (tact->get_active() != s) { + Config->set_skip_playback (tact->get_active()); } } @@ -857,42 +853,29 @@ Editor::toggle_ruler_visibility (RulerType rt) break; } - Glib::RefPtr act = ActionManager::get_action (X_("Rulers"), action); - - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - update_ruler_visibility (); - store_ruler_visibility (); - } + update_ruler_visibility (); + store_ruler_visibility (); } void Editor::set_summary () { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("ToggleSummary")); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - _session->config.set_show_summary (tact->get_active ()); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("ToggleSummary")); + _session->config.set_show_summary (tact->get_active ()); } void Editor::set_group_tabs () { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("ToggleGroupTabs")); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - _session->config.set_show_group_tabs (tact->get_active ()); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("ToggleGroupTabs")); + _session->config.set_show_group_tabs (tact->get_active ()); } void Editor::set_close_video_sensitive (bool onoff) { Glib::RefPtr act = ActionManager::get_action (X_("Main"), X_("CloseVideo")); - if (act) { - act->set_sensitive (onoff); - } + act->set_sensitive (onoff); } void @@ -1364,29 +1347,16 @@ Editor::zoom_focus_action (ZoomFocus focus) abort(); /*NOTREACHED*/ } - act = ActionManager::get_action (X_("Zoom"), action); - - if (act) { - RefPtr ract = RefPtr::cast_dynamic(act); - return ract; - } else { - error << string_compose (_("programming error: %1: %2"), "Editor::zoom_focus_action could not find action to match focus.", action) << endmsg; - } - - return RefPtr (); + return ActionManager::get_radio_action (X_("Zoom"), action); } void Editor::toggle_sound_midi_notes () { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("sound-midi-notes")); - - if (act) { - bool s = UIConfiguration::instance().get_sound_midi_notes(); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (tact->get_active () != s) { - UIConfiguration::instance().set_sound_midi_notes (tact->get_active()); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("sound-midi-notes")); + bool s = UIConfiguration::instance().get_sound_midi_notes(); + if (tact->get_active () != s) { + UIConfiguration::instance().set_sound_midi_notes (tact->get_active()); } } @@ -1436,12 +1406,9 @@ Editor::parameter_changed (std::string p) _summary_hbox.hide (); } - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("ToggleSummary")); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (tact->get_active () != s) { - tact->set_active (s); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("ToggleSummary")); + if (tact->get_active () != s) { + tact->set_active (s); } } else if (p == "show-group-tabs") { @@ -1454,36 +1421,25 @@ Editor::parameter_changed (std::string p) reset_controls_layout_width (); - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("ToggleGroupTabs")); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (tact->get_active () != s) { - tact->set_active (s); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("ToggleGroupTabs")); + if (tact->get_active () != s) { + tact->set_active (s); } } else if (p == "timecode-offset" || p == "timecode-offset-negative") { update_just_timecode (); } else if (p == "sound-midi-notes") { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("sound-midi-notes")); - - if (act) { - bool s = UIConfiguration::instance().get_sound_midi_notes(); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (tact->get_active () != s) { - tact->set_active (s); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("sound-midi-notes")); + bool s = UIConfiguration::instance().get_sound_midi_notes(); + if (tact->get_active () != s) { + tact->set_active (s); } } else if (p == "show-region-gain") { set_gain_envelope_visibility (); } else if (p == "skip-playback") { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("toggle-skip-playback")); - - if (act) { - bool s = Config->get_skip_playback (); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - if (tact->get_active () != s) { - tact->set_active (s); - } + Glib::RefPtr tact = ActionManager::get_toggle_action (X_("Editor"), X_("toggle-skip-playback")); + bool s = Config->get_skip_playback (); + if (tact->get_active () != s) { + tact->set_active (s); } } } diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 2798ba4a3c..0e4d6bd322 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -208,14 +208,7 @@ Editor::set_current_movable (boost::shared_ptr m) void Editor::mouse_mode_object_range_toggled() { - MouseMode m = mouse_mode; - - Glib::RefPtr act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-range")); - assert (act); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - assert (tact); - - set_mouse_mode (m, true); // call this so the button styles can get updated + set_mouse_mode (mouse_mode, true); /* updates set-mouse-mode-range */ } bool diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 6526d4dec5..4e025225f6 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -1682,7 +1682,6 @@ RefPtr EditorRegions::hide_action () const { return ActionManager::get_action (X_("RegionList"), X_("rlHide")); - } RefPtr @@ -1700,15 +1699,11 @@ EditorRegions::remove_unused_regions_action () const RefPtr EditorRegions::toggle_full_action () const { - Glib::RefPtr act = ActionManager::get_action (X_("RegionList"), X_("rlShowAll")); - assert (act); - return Glib::RefPtr::cast_dynamic (act); + return ActionManager::get_toggle_action (X_("RegionList"), X_("rlShowAll")); } RefPtr EditorRegions::toggle_show_auto_regions_action () const { - Glib::RefPtr act = ActionManager::get_action (X_("RegionList"), X_("rlShowAuto")); - assert (act); - return Glib::RefPtr::cast_dynamic (act); + return ActionManager::get_toggle_action (X_("RegionList"), X_("rlShowAuto")); } diff --git a/gtk2_ardour/step_entry.cc b/gtk2_ardour/step_entry.cc index 7dc9d17805..5913a09cab 100644 --- a/gtk2_ardour/step_entry.cc +++ b/gtk2_ardour/step_entry.cc @@ -550,8 +550,7 @@ StepEntry::note_length () { double base_time = 4.0 / (double) length_divisor_adjustment.get_value(); - RefPtr act = ActionManager::get_action ("StepEditing/toggle-triplet"); - RefPtr tact = RefPtr::cast_dynamic (act); + RefPtr tact = ActionManager::get_toggle_action ("StepEditing/toggle-triplet"); bool triplets = tact->get_active (); if (triplets) { diff --git a/gtk2_ardour/time_info_box.cc b/gtk2_ardour/time_info_box.cc index d5d77acee8..c34a29003c 100644 --- a/gtk2_ardour/time_info_box.cc +++ b/gtk2_ardour/time_info_box.cc @@ -265,10 +265,8 @@ TimeInfoBox::selection_changed () case Editing::MouseObject: if (selection.regions.empty()) { if (selection.points.empty()) { - Glib::RefPtr act = ActionManager::get_action ("MouseMode", "set-mouse-mode-object-range"); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - - if (tact && tact->get_active() && !selection.time.empty()) { + Glib::RefPtr tact = ActionManager::get_toggle_action ("MouseMode", "set-mouse-mode-object-range"); + if (tact->get_active() && !selection.time.empty()) { /* show selected range */ selection_start->set_off (false); selection_end->set_off (false); @@ -315,10 +313,9 @@ TimeInfoBox::selection_changed () case Editing::MouseRange: if (selection.time.empty()) { - Glib::RefPtr act = ActionManager::get_action ("MouseMode", "set-mouse-mode-object-range"); - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); + Glib::RefPtr tact = ActionManager::get_toggle_action ("MouseMode", "set-mouse-mode-object-range"); - if (tact && tact->get_active() && !selection.regions.empty()) { + if (tact->get_active() && !selection.regions.empty()) { /* show selected regions */ s = selection.regions.start(); e = selection.regions.end_sample(); -- cgit v1.2.3