diff options
author | Robin Gareus <robin@gareus.org> | 2016-06-01 22:26:32 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-06-01 22:43:40 +0200 |
commit | 22cbc69074371e4a1e59acb914b38aa86240a05a (patch) | |
tree | 2f908c987a462ee6cdc81645ac5351cddcfee1da /gtk2_ardour/mixer_strip.cc | |
parent | 85a9ff800735a32d415ef9d6d28fac9dc64498d8 (diff) |
only show "Pin Connections..." in mixer-strip if there are plugins
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 439a0ee5a5..b03fd9c2a0 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -99,6 +99,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer) , meter_point_button (_("pre")) , monitor_section_button (0) , midi_input_enable_button (0) + , _plugin_insert_cnt (0) , _comment_button (_("Comments")) , trim_control (ArdourKnob::default_elements, ArdourKnob::Flags (ArdourKnob::Detent | ArdourKnob::ArcToZero)) , _visibility (X_("mixer-element-visibility")) @@ -1578,6 +1579,18 @@ MixerStrip::show_passthru_color () reset_strip_style (); } + +void +MixerStrip::help_count_plugins (boost::weak_ptr<Processor> p) +{ + boost::shared_ptr<Processor> processor (p.lock ()); + if (!processor || !processor->display_to_user()) { + return; + } + if (boost::dynamic_pointer_cast<PluginInsert> (processor)) { + ++_plugin_insert_cnt; + } +} void MixerStrip::build_route_ops_menu () { @@ -1618,7 +1631,9 @@ MixerStrip::build_route_ops_menu () i->signal_activate().connect (sigc::hide_return (sigc::bind (sigc::mem_fun (*_route, &Route::set_strict_io), !_route->strict_io()))); } - if (1 /* TODO IFF >= 1 plugin-insert */) { + _plugin_insert_cnt = 0; + _route->foreach_processor (sigc::mem_fun (*this, &MixerStrip::help_count_plugins)); + if (_plugin_insert_cnt > 0) { items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Pin Connections..."), sigc::mem_fun (*this, &RouteUI::manage_pins))); } |