From 8f183e26ee6fe37af2f941285cf6f31a89f35950 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Tue, 29 Oct 2024 10:46:00 -0500 Subject: [PATCH] Use tabbable visibility functions on all pages --- gtk2_ardour/ardour.menus.in | 6 +++++ gtk2_ardour/editor.cc | 16 ------------- gtk2_ardour/editor.h | 7 +----- gtk2_ardour/editor_actions.cc | 15 +++++++++++-- gtk2_ardour/editor_mixer.cc | 18 ++------------- gtk2_ardour/mixer_ui.cc | 42 ++++++++++++++++++++--------------- gtk2_ardour/mixer_ui.h | 3 +++ gtk2_ardour/recorder_ui.cc | 5 +++++ gtk2_ardour/trigger.bindings | 4 ++++ gtk2_ardour/trigger_page.cc | 10 +++++++++ 10 files changed, 68 insertions(+), 58 deletions(-) diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index f4185e61dc..d2ccfc3fc6 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -631,6 +631,12 @@ + + + + + + #ifdef MIXBUS diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index ead62ea4e7..ed7e840fc9 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4823,8 +4823,6 @@ Editor::add_stripables (StripableList& sl) if (show_editor_mixer_when_tracks_arrive && !new_selection.empty()) { show_editor_mixer (true); } - - editor_list_button.set_sensitive (true); } void @@ -5506,9 +5504,6 @@ Editor::session_going_away () nudge_clock->set_session (0); - editor_list_button.set_active(false); - editor_list_button.set_sensitive(false); - /* clear tempo/meter rulers */ remove_metric_marks (); clear_marker_display (); @@ -5538,16 +5533,6 @@ Editor::trigger_script (int i) LuaInstance::instance()-> call_action (i); } -void -Editor::show_editor_list (bool yn) -{ - if (yn) { - _editor_list_vbox.show (); - } else { - _editor_list_vbox.hide (); - } -} - void Editor::change_region_layering_order (bool from_context_menu) { @@ -5735,7 +5720,6 @@ Editor::use_own_window (bool and_fill_it) */ /* re-hide stuff if necessary */ - editor_list_button_toggled (); parameter_changed ("show-summary"); parameter_changed ("show-group-tabs"); parameter_changed ("show-zoom-tools"); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 66054268c1..d44c1d3e59 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -301,7 +301,7 @@ public: void maybe_add_mixer_strip_width (XMLNode&) const; void show_editor_mixer (bool yn); void create_editor_mixer (); - void show_editor_list (bool yn); + void showhide_att_left (bool); void set_selected_mixer_strip (TimeAxisView&); void mixer_strip_width_changed (); void hide_track_in_display (TimeAxisView* tv, bool apply_to_selection = false); @@ -1736,11 +1736,6 @@ private: /* toolbar */ - Gtk::ToggleButton editor_mixer_button; - Gtk::ToggleButton editor_list_button; - void editor_mixer_button_toggled (); - void editor_list_button_toggled (); - ArdourWidgets::ArdourButton zoom_in_button; ArdourWidgets::ArdourButton zoom_out_button; ArdourWidgets::ArdourButton zoom_out_full_button; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 04b02b220b..7276bc8d2f 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -182,8 +182,19 @@ Editor::register_actions () */ ActionManager::register_action (editor_actions, "lock", S_("Session|Lock"), sigc::mem_fun (*this, &Editor::lock)); - toggle_reg_sens (editor_actions, "show-editor-mixer", _("Show Editor Mixer"), sigc::mem_fun (*this, &Editor::editor_mixer_button_toggled)); - toggle_reg_sens (editor_actions, "show-editor-list", _("Show Editor List"), sigc::mem_fun (*this, &Editor::editor_list_button_toggled)); + /* attachments visibility (editor-mixer-strip, bottom properties, sidebar list) */ + + act = ActionManager::register_toggle_action (editor_actions, "show-editor-list", _("Show Editor List"), sigc::mem_fun (*this, &Tabbable::att_right_button_toggled)); + ActionManager::session_sensitive_actions.push_back (act); + right_attachment_button.set_related_action (act); + + act = ActionManager::register_toggle_action (editor_actions, "show-editor-mixer", _("Show Editor Mixer"), sigc::mem_fun (*this, &Tabbable::att_left_button_toggled)); + ActionManager::session_sensitive_actions.push_back (act); + left_attachment_button.set_related_action (act); + + act = ActionManager::register_toggle_action (editor_actions, "show-editor-props", _("Show Editor Properties Box"), sigc::mem_fun (*this, &Tabbable::att_bottom_button_toggled)); + ActionManager::session_sensitive_actions.push_back (act); + bottom_attachment_button.set_related_action (act); reg_sens (editor_actions, "playhead-to-next-region-boundary", _("Playhead to Next Region Boundary"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_next_region_boundary), true)); reg_sens (editor_actions, "playhead-to-next-region-boundary-noselection", _("Playhead to Next Region Boundary (No Track Selection)"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_to_next_region_boundary), false)); diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index dc47d4f2fc..3c871cdc95 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -60,23 +60,9 @@ using namespace Gtkmm2ext; using namespace PBD; void -Editor::editor_mixer_button_toggled () +Editor::showhide_att_left (bool yn) { - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("show-editor-mixer")); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - show_editor_mixer (tact->get_active()); - } -} - -void -Editor::editor_list_button_toggled () -{ - Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("show-editor-list")); - if (act) { - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); - show_editor_list (tact->get_active()); - } + show_editor_mixer (yn); } void diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 337793c031..d317e100af 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -164,6 +164,13 @@ Mixer_UI::Mixer_UI () contents().set_data ("ardour-bindings", bindings); + if (!Profile->get_mixbus ()) { + right_attachment_button.set_sensitive(false); + } else { + left_attachment_button.set_sensitive(false); + } + bottom_attachment_button.set_sensitive(false); + PresentationInfo::Change.connect (*this, invalidator (*this), std::bind (&Mixer_UI::presentation_info_changed, this, _1), gui_context()); Route::FanOut.connect (*this, invalidator (*this), std::bind (&Mixer_UI::fan_out, this, _1, false, true), gui_context()); @@ -2294,23 +2301,6 @@ Mixer_UI::route_group_property_changed (RouteGroup* group, const PropertyChange& } } -void -Mixer_UI::toggle_mixer_list () -{ - Glib::RefPtr act = ActionManager::get_toggle_action ("Mixer", "ToggleMixerList"); - showhide_mixer_list (act->get_active()); -} - -void -Mixer_UI::showhide_mixer_list (bool yn) -{ - if (yn) { - list_vpacker.show (); - } else { - list_vpacker.hide (); - } -} - void Mixer_UI::toggle_monitor_section () { @@ -3714,7 +3704,23 @@ Mixer_UI::register_actions () ActionManager::register_action (group, "toggle-midi-input-active", _("Toggle MIDI Input Active for Mixer-Selected Tracks/Busses"), sigc::bind (sigc::mem_fun (*this, &Mixer_UI::toggle_midi_input_active), false)); - ActionManager::register_toggle_action (group, X_("ToggleMixerList"), _("Mixer: Show Mixer List"), sigc::mem_fun (*this, &Mixer_UI::toggle_mixer_list)); + /* attachments visibility (editor-mixer-strip, bottom properties, sidebar list) */ + + RefPtr act; + if (!Profile->get_mixbus ()) { + act = ActionManager::register_toggle_action (group, "ToggleMixerList", _("(Mixer) Show Sidebar List"), sigc::mem_fun (*this, &Tabbable::att_left_button_toggled)); + left_attachment_button.set_related_action (act); + act = ActionManager::register_toggle_action (group, "ToggleMixerStrip", _("(Mixer) Show Sidebar Strip"), []{}); + content_right_pane.remove(content_right_vbox); + } else { + act = ActionManager::register_toggle_action (group, "ToggleMixerList", _("(Mixer) Show Sidebar List"), sigc::mem_fun (*this, &Tabbable::att_right_button_toggled)); + right_attachment_button.set_related_action (act); + act = ActionManager::register_toggle_action (group, "ToggleMixerStrip", _("(Mixer) Show Sidebar Strip"), sigc::mem_fun (*this, &Tabbable::att_left_button_toggled)); + left_attachment_button.set_related_action (act); + } + + act = ActionManager::register_toggle_action (group, "ToggleMixerProps", _("(Mixer) Show Properties Bottom"), sigc::mem_fun (*this, &Tabbable::att_bottom_button_toggled)); + bottom_attachment_button.set_related_action (act); ActionManager::register_toggle_action (group, X_("ToggleVCAPane"), _("Mixer: Show VCAs"), sigc::mem_fun (*this, &Mixer_UI::toggle_vcas)); diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index 9e760aa68f..4e05a8b040 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -148,6 +148,9 @@ public: Gtkmm2ext::Bindings* bindings; void toggle_mixer_list (); + void toggle_mixer_strip (); + void toggle_mixer_props (); + void showhide_mixer_list (bool yn); void toggle_surround_master (); diff --git a/gtk2_ardour/recorder_ui.cc b/gtk2_ardour/recorder_ui.cc index 2ee4edbde8..f8f8590646 100644 --- a/gtk2_ardour/recorder_ui.cc +++ b/gtk2_ardour/recorder_ui.cc @@ -101,6 +101,11 @@ RecorderUI::RecorderUI () load_bindings (); register_actions (); + content_right_pane.remove(content_right_vbox); + left_attachment_button.set_sensitive(false); + bottom_attachment_button.set_sensitive(false); + right_attachment_button.set_sensitive(false); + /* monitoring */ _auto_input_button.set_related_action (ActionManager::get_action ("Transport", "ToggleAutoInput")); _auto_input_button.set_name ("transport option button"); diff --git a/gtk2_ardour/trigger.bindings b/gtk2_ardour/trigger.bindings index 61f7355687..e3b25cd14f 100644 --- a/gtk2_ardour/trigger.bindings +++ b/gtk2_ardour/trigger.bindings @@ -10,5 +10,9 @@ + + + + diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index 1558f16a12..bcde331d91 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -77,6 +77,8 @@ TriggerPage::TriggerPage () load_bindings (); register_actions (); + left_attachment_button.set_sensitive(false); + /* Match TriggerStrip::_name_button height */ ArdourButton* spacer = manage (new ArdourButton (ArdourButton::Text)); spacer->set_name ("mixer strip button"); @@ -846,6 +848,14 @@ TriggerPage::register_actions () { Glib::RefPtr trigger_actions = ActionManager::create_action_group (bindings, X_("Cues")); + /* attachments visibility (editor-mixer-strip, bottom properties, sidebar list) */ + + Glib::RefPtr act = ActionManager::register_toggle_action (trigger_actions, "ToggleTriggerList", _("(Cue Page) Show Sidebar List"), sigc::mem_fun (*this, &Tabbable::att_right_button_toggled)); + right_attachment_button.set_related_action (act); + + act = ActionManager::register_toggle_action (trigger_actions, "ToggleTriggerProps", _("(Cue Page) Show Properties Bottom"), sigc::mem_fun (*this, &Tabbable::att_bottom_button_toggled)); + bottom_attachment_button.set_related_action (act); + ActionManager::register_action (trigger_actions, "clear-trigger-slot", _("Clear Selected Slot"), sigc::mem_fun (*this, &TriggerPage::clear_selected_slot)); ActionManager::register_action (trigger_actions, "clear-trigger-slot-alt", _("Clear Selected Slot"), sigc::mem_fun (*this, &TriggerPage::clear_selected_slot));