Fixed wrong plugin being removed

This commit is contained in:
Rolando Islas
2016-01-25 18:51:20 -07:00
parent 6c5d8e9316
commit db81016abc
2 changed files with 29 additions and 3 deletions
+28 -3
View File
@@ -286,12 +286,27 @@ void IconMenu::menuInvocationCallback(int id, IconMenu* im)
im->deletePluginStates(); im->deletePluginStates();
int index = id - im->activePluginList.getNumTypes() - 3; int index = id - im->activePluginList.getNumTypes() - 3;
PluginDescription plugin = *im->activePluginList.getType(index); std::vector<PluginDescription> timeSorted = im->getTimeSortedList();
String key = "pluginOrder-" + plugin.descriptiveName + plugin.version + plugin.pluginFormatName; String key = "pluginOrder-" + timeSorted[index].descriptiveName + timeSorted[index].version + timeSorted[index].pluginFormatName;
int unsortedIndex = 0;
for (int i = 0; im->activePluginList.getNumTypes(); i++)
{
PluginDescription current = *im->activePluginList.getType(i);
if (key.equalsIgnoreCase("pluginOrder-" + current.descriptiveName + current.version + current.pluginFormatName))
{
unsortedIndex = i;
break;
}
}
// Remove plugin order
getAppProperties().getUserSettings()->removeValue(key); getAppProperties().getUserSettings()->removeValue(key);
getAppProperties().saveIfNeeded(); getAppProperties().saveIfNeeded();
im->activePluginList.removeType(index);
// Remove plugin from list
im->activePluginList.removeType(unsortedIndex);
// Save current states
im->savePluginStates(); im->savePluginStates();
im->loadActivePlugins(); im->loadActivePlugins();
} }
@@ -322,6 +337,16 @@ void IconMenu::menuInvocationCallback(int id, IconMenu* im)
} }
} }
std::vector<PluginDescription> IconMenu::getTimeSortedList()
{
int time = 0;
std::vector<PluginDescription> list;
for (int i = 0; i < activePluginList.getNumTypes(); i++)
list.push_back(getNextPluginOlderThanTime(time));
return list;
}
void IconMenu::deletePluginStates() void IconMenu::deletePluginStates()
{ {
for (int i = 0; i < activePluginList.getNumTypes(); i++) for (int i = 0; i < activePluginList.getNumTypes(); i++)
+1
View File
@@ -31,6 +31,7 @@ private:
void deletePluginStates(); void deletePluginStates();
PluginDescription getNextPluginOlderThanTime(int &time); PluginDescription getNextPluginOlderThanTime(int &time);
void removePluginsLackingInputOutput(); void removePluginsLackingInputOutput();
std::vector<PluginDescription> getTimeSortedList();
AudioDeviceManager deviceManager; AudioDeviceManager deviceManager;
AudioPluginFormatManager formatManager; AudioPluginFormatManager formatManager;