From 72e1a2119baea9690bdea0b729ecbafade2c87ba Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 26 Feb 2017 12:56:45 +0100 Subject: Fix filtering by type in plugin selector --- ingen/Forge.hpp | 4 ++-- ingen/client/PluginModel.hpp | 4 ++-- src/client/ClientStore.cpp | 10 +++++----- src/gui/GraphBox.cpp | 2 +- src/gui/LoadPluginWindow.cpp | 8 ++++++-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ingen/Forge.hpp b/ingen/Forge.hpp index b9d98a1d..9b45bde1 100644 --- a/ingen/Forge.hpp +++ b/ingen/Forge.hpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2015 David Robillard + Copyright 2007-2017 David Robillard Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -35,7 +35,7 @@ class INGEN_API Forge : public LV2_Atom_Forge { public: explicit Forge(URIMap& map); - std::string str(const Atom& atom, bool quoted=true); + std::string str(const Atom& atom, bool quoted); bool is_uri(const Atom& atom) const { return atom.type() == URI || atom.type() == URID; diff --git a/ingen/client/PluginModel.hpp b/ingen/client/PluginModel.hpp index ad425904..6883596a 100644 --- a/ingen/client/PluginModel.hpp +++ b/ingen/client/PluginModel.hpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2015 David Robillard + Copyright 2007-2017 David Robillard Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -56,7 +56,7 @@ public: const Atom& type() const { return _type; } const Raul::URI type_uri() const { return Raul::URI(_type.is_valid() - ? _uris.forge.str(_type) + ? _uris.forge.str(_type, false) : "http://www.w3.org/2002/07/owl#Nothing"); } diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp index 4ff04957..eac853f7 100644 --- a/src/client/ClientStore.cpp +++ b/src/client/ClientStore.cpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2016 David Robillard + Copyright 2007-2017 David Robillard Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -143,8 +143,8 @@ ClientStore::_plugin(const Raul::URI& uri) SPtr ClientStore::_plugin(const Atom& uri) { - /* FIXME: SHould probably be stored with URIs rather than strings, to make this - a fast case. */ + /* FIXME: Should probably be stored with URIs rather than strings, to make + this a fast case. */ const Plugins::iterator i = _plugins->find(Raul::URI(_uris.forge.str(uri, false))); return (i == _plugins->end()) ? SPtr() : (*i).second; @@ -263,7 +263,7 @@ ClientStore::put(const Raul::URI& uri, _log.error(fmt("Preset <%1%> label is not a string\n") % uri.c_str()); } else if (!(plug = _plugin(p->second))) { _log.error(fmt("Preset <%1%> for unknown plugin %2%\n") - % uri.c_str() % _uris.forge.str(p->second)); + % uri.c_str() % _uris.forge.str(p->second, true)); } else { plug->add_preset(uri, l->second.ptr()); } @@ -374,7 +374,7 @@ ClientStore::set_property(const Raul::URI& subject_uri, { if (subject_uri == Raul::URI("ingen:/engine")) { _log.info(fmt("Engine property <%1%> = %2%\n") - % predicate.c_str() % _uris.forge.str(value)); + % predicate.c_str() % _uris.forge.str(value, false)); return; } SPtr subject = _resource(subject_uri); diff --git a/src/gui/GraphBox.cpp b/src/gui/GraphBox.cpp index f48cffa7..82861a88 100644 --- a/src/gui/GraphBox.cpp +++ b/src/gui/GraphBox.cpp @@ -444,7 +444,7 @@ GraphBox::show_port_status(const PortModel* port, const Atom& value) } if (value.is_valid()) { - msg << " = " << _app->forge().str(value); + msg << " = " << _app->forge().str(value, true); } _status_bar->pop(STATUS_CONTEXT_HOVER); diff --git a/src/gui/LoadPluginWindow.cpp b/src/gui/LoadPluginWindow.cpp index 3d6927cb..2c0d1b63 100644 --- a/src/gui/LoadPluginWindow.cpp +++ b/src/gui/LoadPluginWindow.cpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2015 David Robillard + Copyright 2007-2017 David Robillard Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -450,7 +450,11 @@ LoadPluginWindow::filter_changed() field = name.ptr(); break; case CriteriaColumns::Criteria::TYPE: - field = plugin->type_uri(); + if (plugin->lilv_plugin()) { + field = lilv_node_as_string( + lilv_plugin_class_get_label( + lilv_plugin_get_class(plugin->lilv_plugin()))); + } break; case CriteriaColumns::Criteria::PROJECT: field = get_project_name(plugin); -- cgit v1.2.1