void PluginManagerImpl::set_plugin_enabled(const app_PluginRef &plugin, bool flag) { grt::StringListRef disabled_list(get_disabled_plugin_names()); size_t idx= disabled_list.get_index(plugin->name()); if (flag && idx != grt::BaseListRef::npos) { disabled_list.remove(idx); if (plugin->groups().count() == 0) add_plugin_to_group(plugin, "Others/Menu/Ungrouped"); else { for (size_t d= plugin->groups().count(), j= 0; j < d; j++) add_plugin_to_group(plugin, plugin->groups()[j]); } } else if (!flag && idx == grt::BaseListRef::npos) { disabled_list.insert(plugin->name()); // remove the plugin from all groups grt::ListRef<app_PluginGroup> groups(get_plugin_groups()); for (size_t c = groups.count(), i = 0; i < c; i++) groups[i]->plugins().remove_value(plugin); } }