Change when the Deletion event is fired so that all mods are still there at invoke.

This commit is contained in:
Ottermandias 2022-05-30 16:19:43 +02:00
parent 3d7faad2ae
commit 81435b4ff2
2 changed files with 5 additions and 5 deletions

View file

@ -68,7 +68,7 @@ public partial class ModCollection
_modManager.ModDiscoveryStarted += OnModDiscoveryStarted;
_modManager.ModDiscoveryFinished += OnModDiscoveryFinished;
_modManager.ModOptionChanged += OnModOptionsChanged;
_modManager.ModPathChanged += OnModPathChanged;
_modManager.ModPathChanged += OnModPathChange;
CollectionChanged += SaveOnChange;
ReadCollections();
LoadCollections();
@ -79,7 +79,7 @@ public partial class ModCollection
_modManager.ModDiscoveryStarted -= OnModDiscoveryStarted;
_modManager.ModDiscoveryFinished -= OnModDiscoveryFinished;
_modManager.ModOptionChanged -= OnModOptionsChanged;
_modManager.ModPathChanged -= OnModPathChanged;
_modManager.ModPathChanged -= OnModPathChange;
}
// Returns true if the name is not empty, it is not the name of the empty collection
@ -210,7 +210,7 @@ public partial class ModCollection
// A changed mod path forces changes for all collections, active and inactive.
private void OnModPathChanged( ModPathChangeType type, Mod mod, DirectoryInfo? oldDirectory,
private void OnModPathChange( ModPathChangeType type, Mod mod, DirectoryInfo? oldDirectory,
DirectoryInfo? newDirectory )
{
switch( type )

View file

@ -99,7 +99,7 @@ public partial class Mod
}
}
// Delete a mod by its index.
// Delete a mod by its index. The event is invoked before the mod is removed from the list.
// Deletes from filesystem as well as from internal data.
// Updates indices of later mods.
public void DeleteMod( int idx )
@ -118,13 +118,13 @@ public partial class Mod
}
}
ModPathChanged.Invoke( ModPathChangeType.Deleted, mod, mod.ModPath, null );
_mods.RemoveAt( idx );
foreach( var remainingMod in _mods.Skip( idx ) )
{
--remainingMod.Index;
}
ModPathChanged.Invoke( ModPathChangeType.Deleted, mod, mod.ModPath, null );
PluginLog.Debug( "Deleted mod {Name:l}.", mod.Name );
}