summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_ui.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2019-09-11 16:36:05 -0700
committerLen Ovens <len@ovenwerks.net>2019-09-11 16:36:05 -0700
commitda88e9d34cfadeafb9e2ec046d1bc0306baf0dde (patch)
treedab4f7c1208048503d6a78760d33acfd110e728d /gtk2_ardour/mixer_ui.cc
parent729cd0e2b341a0b9a3068ba0b534b7238815d05b (diff)
Foldback gui: Added hide and show
- New menu item in view menu - Foldback strip has hide button - Adding a new foldback bus sets show - setting is saved and restored
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r--gtk2_ardour/mixer_ui.cc46
1 files changed, 46 insertions, 0 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index ec04705fff..e349381ce7 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -115,6 +115,7 @@ Mixer_UI::Mixer_UI ()
, track_menu (0)
, _plugin_selector (0)
, foldback_strip (0)
+ , _show_foldback_strip (true)
, _strip_width (UIConfiguration::instance().get_default_narrow_ms() ? Narrow : Wide)
, _spill_scroll_position (0)
, ignore_reorder (false)
@@ -612,6 +613,7 @@ Mixer_UI::add_stripables (StripableList& slist)
}
if (route->is_foldbackbus ()) {
if (foldback_strip) {
+ // last strip created is shown
foldback_strip->set_route (route);
} else {
foldback_strip = new FoldbackStrip (*this, _session, route);
@@ -620,6 +622,13 @@ Mixer_UI::add_stripables (StripableList& slist)
out_packer.reorder_child (*foldback_strip, 0);
foldback_strip->set_packed (true);
}
+ /* config from last run is set before there are any foldback strips
+ * this takes that setting and applies it after at least one foldback
+ * strip exists */
+ bool yn = _show_foldback_strip;
+ Glib::RefPtr<ToggleAction> act = ActionManager::get_toggle_action ("Mixer", "ToggleFoldbackStrip");
+ act->set_active(!yn);
+ act->set_active(yn);
continue;
}
@@ -2070,6 +2079,28 @@ Mixer_UI::showhide_monitor_section (bool yn)
}
void
+Mixer_UI::toggle_foldback_strip ()
+{
+ Glib::RefPtr<ToggleAction> act = ActionManager::get_toggle_action ("Mixer", "ToggleFoldbackStrip");
+ showhide_foldback_strip (act->get_active());
+}
+
+
+void
+Mixer_UI::showhide_foldback_strip (bool yn)
+{
+ _show_foldback_strip = yn;
+
+ if (foldback_strip) {
+ if (yn) {
+ foldback_strip->show();
+ } else {
+ foldback_strip->hide();
+ }
+ }
+}
+
+void
Mixer_UI::toggle_vcas ()
{
Glib::RefPtr<ToggleAction> act = ActionManager::get_toggle_action ("Mixer", "ToggleVCAPane");
@@ -2331,6 +2362,15 @@ Mixer_UI::set_state (const XMLNode& node, int version)
}
yn = true;
+ node.get_property ("foldback-strip-visible", yn);
+ {
+ Glib::RefPtr<ToggleAction> act = ActionManager::get_toggle_action (X_("Mixer"), X_("ToggleFoldbackStrip"));
+ /* do it twice to force the change */
+ act->set_active (!yn);
+ act->set_active (yn);
+ }
+
+ yn = true;
node.get_property ("show-vca-pane", yn);
{
Glib::RefPtr<ToggleAction> act = ActionManager::get_toggle_action (X_("Mixer"), X_("ToggleVCAPane"));
@@ -2444,6 +2484,9 @@ Mixer_UI::get_state ()
act = ActionManager::get_toggle_action ("Mixer", "ToggleMonitorSection");
node->set_property ("monitor-section-visible", act->get_active ());
+ act = ActionManager::get_toggle_action ("Mixer", "ToggleFoldbackStrip");
+ node->set_property ("foldback-strip-visible", act->get_active ());
+
act = ActionManager::get_toggle_action ("Mixer", "ToggleVCAPane");
node->set_property ("show-vca-pane", act->get_active ());
@@ -3357,6 +3400,9 @@ Mixer_UI::register_actions ()
#endif
ActionManager::register_toggle_action (group, X_("ToggleMonitorSection"), _("Mixer: Show Monitor Section"), sigc::mem_fun (*this, &Mixer_UI::toggle_monitor_section));
+
+ ActionManager::register_toggle_action (group, X_("ToggleFoldbackStrip"), _("Mixer: Show Foldback Strip"), sigc::mem_fun (*this, &Mixer_UI::toggle_foldback_strip));
+
}
void