1
0

Fixed plugin count and fixed plugin loading, when settings.ini was regenerated.

This commit is contained in:
Howaner 2014-07-27 00:03:00 +02:00
parent 56f4174943
commit f79e682664

View File

@ -124,15 +124,15 @@ void cPluginManager::ReloadPluginsNow(cIniFile & a_SettingsIni)
// Check if the Plugins section exists. // Check if the Plugins section exists.
int KeyNum = a_SettingsIni.FindKey("Plugins"); int KeyNum = a_SettingsIni.FindKey("Plugins");
// If it does, how many plugins are there?
int NumPlugins = ((KeyNum != -1) ? (a_SettingsIni.GetNumValues(KeyNum)) : 0);
if (KeyNum == -1) if (KeyNum == -1)
{ {
InsertDefaultPlugins(a_SettingsIni); InsertDefaultPlugins(a_SettingsIni);
KeyNum = a_SettingsIni.FindKey("Plugins");
} }
else if (NumPlugins > 0)
{ // How many plugins are there?
int NumPlugins = a_SettingsIni.GetNumValues(KeyNum);
for (int i = 0; i < NumPlugins; i++) for (int i = 0; i < NumPlugins; i++)
{ {
AString ValueName = a_SettingsIni.GetValueName(KeyNum, i); AString ValueName = a_SettingsIni.GetValueName(KeyNum, i);
@ -148,6 +148,20 @@ void cPluginManager::ReloadPluginsNow(cIniFile & a_SettingsIni)
} }
} }
} }
// Remove invalid plugins from the PluginMap.
for (PluginMap::iterator itr = m_Plugins.begin(); itr != m_Plugins.end();)
{
if (itr->second == NULL)
{
PluginMap::iterator thiz = itr;
++thiz;
m_Plugins.erase(itr);
itr = thiz;
continue;
}
++itr;
} }
size_t NumLoadedPlugins = GetNumPlugins(); size_t NumLoadedPlugins = GetNumPlugins();
@ -155,13 +169,13 @@ void cPluginManager::ReloadPluginsNow(cIniFile & a_SettingsIni)
{ {
LOG("-- No Plugins Loaded --"); LOG("-- No Plugins Loaded --");
} }
else if (NumLoadedPlugins > 1) else if (NumLoadedPlugins == 1)
{ {
LOG("-- Loaded %i Plugins --", (int)NumLoadedPlugins); LOG("-- Loaded 1 Plugin --");
} }
else else
{ {
LOG("-- Loaded 1 Plugin --"); LOG("-- Loaded %i Plugins --", (int)NumLoadedPlugins);
} }
CallHookPluginsLoaded(); CallHookPluginsLoaded();
} }