if (plugin_display.get_selection()->count_selected_rows() != 0) {
TreeModel::Row row = *(plugin_display.get_selection()->get_selected());
ARDOUR::PluginInfoPtr pi = row[plugin_columns.plugin];
- manager.reset_tags (pi, PluginManager::FromGui);
+ manager.reset_tags (pi);
display_selection_changed ();
_need_tag_save = true;
_need_menu_rebuild = true;
FromGui // ... from the UI, in realtime: will emit a signal so ui can show "sanitized" string as it is generated
};
void set_tags (ARDOUR::PluginType type, std::string unique_id, std::string tags, std::string name, TagType tagtype);
- void reset_tags (PluginInfoPtr const&, TagType);
+ void reset_tags (PluginInfoPtr const&);
std::string get_tags_as_string (PluginInfoPtr const&) const;
std::vector<std::string> get_tags (PluginInfoPtr const&) const;
}
void
-PluginManager::reset_tags (PluginInfoPtr const& pi, TagType tt)
+PluginManager::reset_tags (PluginInfoPtr const& pi)
{
- set_tags (pi->type, pi->unique_id, pi->category, pi->name, tt);
+ PluginTag ps (pi->type, pi->unique_id, pi->category, pi->name, FromPlug);
+
+ PluginTagList::const_iterator i = find (ptags.begin(), ptags.end(), ps);
+ if (i != ptags.end()) {
+ ptags.erase (ps);
+ ptags.insert (ps);
+ }
}
std::string