From 4cd379f89be407b07ca75c6c93f1d6c2bdffb33a Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 25 May 2019 01:56:54 +0200 Subject: [PATCH] UI integration to conceal LV1 plugins --- gtk2_ardour/plugin_selector.cc | 21 +++++++++++++++------ gtk2_ardour/rc_option_editor.cc | 13 +++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc index 2eb6dd0b67..989d4f31a3 100644 --- a/gtk2_ardour/plugin_selector.cc +++ b/gtk2_ardour/plugin_selector.cc @@ -380,6 +380,7 @@ PluginSelector::show_this_plugin (const PluginInfoPtr& info, const std::string& if (status == PluginManager::Hidden) { return false; } + if (status == PluginManager::Concealed) { return false; } return true; @@ -402,13 +403,15 @@ PluginSelector::show_this_plugin (const PluginInfoPtr& info, const std::string& return false; } - if (_fil_hidden_radio->get_active() && status != PluginManager::Hidden) { + if (_fil_hidden_radio->get_active() && (status != PluginManager::Hidden && status != PluginManager::Concealed)) { return false; } if (!_fil_hidden_radio->get_active() && status == PluginManager::Hidden) { return false; } + + if (!_fil_hidden_radio->get_active() && status == PluginManager::Concealed) { return false; } @@ -535,8 +538,10 @@ PluginSelector::refiller (const PluginInfoList& plugs, const::std::string& searc if (show_this_plugin (*i, searchstr)) { TreeModel::Row newrow = *(plugin_model->append()); - newrow[plugin_columns.favorite] = (manager.get_status (*i) == PluginManager::Favorite); - newrow[plugin_columns.hidden] = (manager.get_status (*i) == PluginManager::Hidden); + + PluginManager::PluginStatusType status = manager.get_status (*i); + newrow[plugin_columns.favorite] = status == PluginManager::Favorite; + newrow[plugin_columns.hidden] = status == PluginManager::Hidden; string name = (*i)->name; if (name.length() > 48) { @@ -865,7 +870,7 @@ PluginSelector::plugin_status_changed (PluginType t, std::string uid, PluginMana (*i)[plugin_columns.hidden] = (stat == PluginManager::Hidden) ? true : false; /* if plug was hidden, remove it from the view */ - if (stat == PluginManager::Hidden) { + if (stat == PluginManager::Hidden || stat == PluginManager::Concealed) { if (!_fil_hidden_radio->get_active() && !_fil_all_radio->get_active()) { plugin_model->erase(i); } @@ -1061,7 +1066,9 @@ PluginSelector::create_by_creator_menu (ARDOUR::PluginInfoList& all_plugs) for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end(); ++i) { - if (manager.get_status (*i) == PluginManager::Hidden) continue; + PluginManager::PluginStatusType status = manager.get_status (*i); + if (status == PluginManager::Hidden) continue; + if (status == PluginManager::Concealed) continue; string creator = (*i)->creator; @@ -1119,7 +1126,9 @@ PluginSelector::create_by_tags_menu (ARDOUR::PluginInfoList& all_plugs) for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end(); ++i) { - if (manager.get_status (*i) == PluginManager::Hidden) continue; + PluginManager::PluginStatusType status = manager.get_status (*i); + if (status == PluginManager::Hidden) continue; + if (status == PluginManager::Concealed) continue; /* for each tag in the plugins tag list, add it to that submenu */ vector tokens = manager.get_tags(*i); diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index c906e96c66..d21e674f2a 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -3518,6 +3518,17 @@ RCOptionEditor::RCOptionEditor () _("AU Blacklist:"))); #endif +#ifdef HAVE_LV2 + add_option (_("Plugins"), new OptionEditorHeading (_("LV1/LV2"))); + add_option (_("Plugins"), + new BoolOption ( + "conceal-lv1-if-lv2-exists", + _("Conceal LADSPA (LV1) Plugins if matching LV2 exists"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_conceal_lv1_if_lv2_exists), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_conceal_lv1_if_lv2_exists) + )); +#endif + #if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT || defined AUDIOUNIT_SUPPORT || defined HAVE_LV2) add_option (_("Plugins"), new OptionEditorHeading (_("Plugin GUI"))); add_option (_("Plugins"), @@ -4071,6 +4082,8 @@ RCOptionEditor::parameter_changed (string const & p) #if (defined LV2_SUPPORT && defined LV2_EXTENDED) _plugin_prefer_inline->set_sensitive (UIConfiguration::instance().get_open_gui_after_adding_plugin() && UIConfiguration::instance().get_show_inline_display_by_default()); #endif + } else if (p == "conceal-lv1-if-lv2-exists") { + PluginManager::instance().refresh (true); } }