Fix folders without direct mod children not being set visible in mod selector.

This commit is contained in:
Ottermandias 2021-08-12 11:42:04 +02:00
parent 61acc3861b
commit a9d47594b5
2 changed files with 14 additions and 3 deletions

View file

@ -56,6 +56,15 @@ namespace Penumbra.UI
}
}
private void SetFolderAndParentsVisible( ModFolder? folder )
{
while( folder != null && (!_visibleFolders.TryGetValue(folder, out var state) || !state.visible) )
{
_visibleFolders[ folder ] = ( true, true );
folder = folder.Parent;
}
}
private void UpdateFolders()
{
_visibleFolders.Clear();
@ -64,7 +73,7 @@ namespace Penumbra.UI
{
if( _visibleMods[ i ].visible )
{
_visibleFolders[ _modsInOrder[ i ].Data.SortOrder.ParentFolder ] = ( true, true );
SetFolderAndParentsVisible( _modsInOrder[ i ].Data.SortOrder.ParentFolder );
}
}
}
@ -255,7 +264,7 @@ namespace Penumbra.UI
}
ret.Item1 = true;
_visibleFolders[ mod.Data.SortOrder.ParentFolder ] = ( true, true );
SetFolderAndParentsVisible( mod.Data.SortOrder.ParentFolder );
return ret;
}
}

View file

@ -96,7 +96,9 @@ namespace Penumbra.UI
if( ImGui.Button( ButtonYesDelete, buttonSize ) )
{
ImGui.CloseCurrentPopup();
_modManager.DeleteMod( Mod.Data.BasePath );
var mod = Mod;
Cache.RemoveMod( mod );
_modManager.DeleteMod( mod.Data.BasePath );
ClearSelection();
}