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));