From 05058e1cf8479fcb52c3b63810d0041f158077ce Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Sat, 26 Oct 2024 03:25:32 -0500 Subject: [PATCH] UI: Fix crash when using "delete all" button in mod manager. --- src/Ryujinx/UI/ViewModels/ModManagerViewModel.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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();