diff --git a/src/Ryujinx/UI/ViewModels/ModManagerViewModel.cs b/src/Ryujinx/UI/ViewModels/ModManagerViewModel.cs index 8321bf894..df2ef266e 100644 --- a/src/Ryujinx/UI/ViewModels/ModManagerViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/ModManagerViewModel.cs @@ -4,6 +4,7 @@ using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Platform.Storage; using Avalonia.Threading; using DynamicData; +using Gommon; using Ryujinx.Ava.Common.Locale; using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.Models; @@ -182,7 +183,7 @@ namespace Ryujinx.Ava.UI.ViewModels JsonHelper.SerializeToFile(_modJsonPath, modData, _serializerContext.ModMetadata); } - public void Delete(ModModel model) + public void Delete(ModModel model, bool removeFromList = true) { var isSubdir = true; var pathToDelete = model.Path; @@ -222,8 +223,11 @@ namespace Ryujinx.Ava.UI.ViewModels Logger.Info?.Print(LogClass.Application, $"Deleting mod at \"{pathToDelete}\""); Directory.Delete(pathToDelete, true); - Mods.Remove(model); - OnPropertyChanged(nameof(ModCount)); + if (removeFromList) + { + Mods.Remove(model); + OnPropertyChanged(nameof(ModCount)); + } Sort(); } @@ -313,11 +317,7 @@ namespace Ryujinx.Ava.UI.ViewModels public void DeleteAll() { - foreach (var mod in Mods) - { - Delete(mod); - } - + Mods.ForEach(it => Delete(it, false)); Mods.Clear(); OnPropertyChanged(nameof(ModCount)); Sort();