mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-02-07 04:10:08 +00:00
Tweaked algorithm for creating the folder-based plugin tree in KnownPluginList
This commit is contained in:
parent
d907508944
commit
3e95b94a6a
1 changed files with 26 additions and 20 deletions
|
|
@ -323,7 +323,32 @@ struct PluginTreeUtils
|
|||
addPlugin (tree, pd, path);
|
||||
}
|
||||
|
||||
optimise (tree);
|
||||
optimiseFolders (tree, false);
|
||||
}
|
||||
|
||||
static void optimiseFolders (KnownPluginList::PluginTree& tree, bool concatenateName)
|
||||
{
|
||||
for (int i = tree.subFolders.size(); --i >= 0;)
|
||||
{
|
||||
KnownPluginList::PluginTree& sub = *tree.subFolders.getUnchecked(i);
|
||||
optimiseFolders (sub, concatenateName || (tree.subFolders.size() > 1));
|
||||
|
||||
if (sub.plugins.size() == 0)
|
||||
{
|
||||
for (int j = 0; j < sub.subFolders.size(); ++j)
|
||||
{
|
||||
KnownPluginList::PluginTree* const s = sub.subFolders.getUnchecked(j);
|
||||
|
||||
if (concatenateName)
|
||||
s->folder = sub.folder + "/" + s->folder;
|
||||
|
||||
tree.subFolders.add (s);
|
||||
}
|
||||
|
||||
sub.subFolders.clear (false);
|
||||
tree.subFolders.remove (i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void buildTreeByCategory (KnownPluginList::PluginTree& tree,
|
||||
|
|
@ -398,25 +423,6 @@ struct PluginTreeUtils
|
|||
}
|
||||
}
|
||||
|
||||
// removes any deeply nested folders that don't contain any actual plugins
|
||||
static void optimise (KnownPluginList::PluginTree& tree)
|
||||
{
|
||||
for (int i = tree.subFolders.size(); --i >= 0;)
|
||||
{
|
||||
KnownPluginList::PluginTree& sub = *tree.subFolders.getUnchecked(i);
|
||||
optimise (sub);
|
||||
|
||||
if (sub.plugins.size() == 0)
|
||||
{
|
||||
for (int j = 0; j < sub.subFolders.size(); ++j)
|
||||
tree.subFolders.add (sub.subFolders.getUnchecked(j));
|
||||
|
||||
sub.subFolders.clear (false);
|
||||
tree.subFolders.remove (i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void addToMenu (const KnownPluginList::PluginTree& tree, PopupMenu& m, const OwnedArray <PluginDescription>& allPlugins)
|
||||
{
|
||||
for (int i = 0; i < tree.subFolders.size(); ++i)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue