diff --git a/src/PluginManager.cpp b/src/PluginManager.cpp index 611f12ae5..be4deaf50 100644 --- a/src/PluginManager.cpp +++ b/src/PluginManager.cpp @@ -1346,14 +1346,17 @@ void PluginDescriptor::SetImporterExtensions(const wxArrayString & extensions) // // ============================================================================ -bool PluginManager::IsPluginRegistered(const PluginID & ID) +bool PluginManager::IsPluginRegistered(const wxString & path) { - if (mPlugins.find(ID) == mPlugins.end()) + for (PluginMap::iterator iter = mPlugins.begin(); iter != mPlugins.end(); ++iter) { - return false; + if (iter->second.GetPath().IsSameAs(path)) + { + return true; + } } - return true; + return false; } const PluginID & PluginManager::RegisterPlugin(ModuleInterface *module) diff --git a/src/PluginManager.h b/src/PluginManager.h index 4c18c2f0d..5b7b61f83 100644 --- a/src/PluginManager.h +++ b/src/PluginManager.h @@ -172,7 +172,7 @@ public: // PluginManagerInterface implementation - virtual bool IsPluginRegistered(const PluginID & ID); + virtual bool IsPluginRegistered(const wxString & path); virtual const PluginID & RegisterPlugin(ModuleInterface *module); virtual const PluginID & RegisterPlugin(ModuleInterface *provider, EffectIdentInterface *effect); diff --git a/src/effects/LoadEffects.cpp b/src/effects/LoadEffects.cpp index fc171765b..614f47f14 100644 --- a/src/effects/LoadEffects.cpp +++ b/src/effects/LoadEffects.cpp @@ -288,11 +288,11 @@ bool BuiltinEffectsModule::AutoRegisterPlugins(PluginManagerInterface & pm) { for (size_t i = 0; i < WXSIZEOF(kEffectNames); i++) { - PluginID ID(wxString(BUILTIN_EFFECT_PREFIX) + kEffectNames[i]); + wxString path(wxString(BUILTIN_EFFECT_PREFIX) + kEffectNames[i]); - if (!pm.IsPluginRegistered(ID)) + if (!pm.IsPluginRegistered(path)) { - RegisterPlugin(pm, ID); + RegisterPlugin(pm, path); } }