Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit c5cffc4

Browse files
committed
Fix error when modifying variant in GUI
1 parent 713705b commit c5cffc4

4 files changed

Lines changed: 12 additions & 14 deletions

File tree

Core/Cache/UserCacheManager.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,9 @@ public UserCacheManager(string cacheDirectory)
2323
public async Task LoadEntries()
2424
{
2525
Entries.Clear();
26-
foreach (string filePath in Directory.GetFiles(cacheDirectory, "*", SearchOption.AllDirectories))
26+
foreach (string filePath in VariantAsset.FindVariants(cacheDirectory))
2727
{
28-
string fileName = Path.GetFileName(filePath);
29-
if (VariantAsset.VariantFileNames.Contains(fileName))
30-
{
31-
Entries.Add(await VariantAsset.Load(filePath, false));
32-
}
28+
Entries.Add(await VariantAsset.Load(filePath, false));
3329
}
3430
}
3531

Core/VariantManager.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,12 +283,17 @@ private void UpdateVariantsStatus(IEnumerable<VariantAsset> variants)
283283
}
284284
}
285285

286+
public void UpdateVariantsStatus()
287+
{
288+
UpdateVariantsStatus(VariantAssets);
289+
UpdateVariantsStatus(UserCache.Entries);
290+
}
291+
286292
private void RefreshAssetList()
287293
{
288294
VariantAssets.Clear();
289295
VariantAssets.AddRange(GetAssetList());
290-
UpdateVariantsStatus(VariantAssets);
291-
UpdateVariantsStatus(UserCache.Entries);
296+
UpdateVariantsStatus();
292297
}
293298

294299
public IEnumerable<VariantAsset> FilterVariants(VariantFilter filter)

Core/Variants/VariantAsset.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,6 @@ public VariantAsset(BondAsset variant, VariantType type)
5252

5353
private static readonly FileExtension[] supportedExtensions = new FileExtension[] { FileExtension.Json, FileExtension.Xml, FileExtension.Bin };
5454

55-
// set of possible file names
56-
public static readonly HashSet<string> VariantFileNames = variantTypes
57-
.SelectMany(t => supportedExtensions.Select(ext => t.Name + ext.Value))
58-
.ToHashSet();
59-
6055
// load variant and attached files
6156
public static async Task<VariantAsset> Load(string variantFilePath, bool loadFiles)
6257
{
@@ -131,7 +126,7 @@ public async Task Save(string directory)
131126

132127
string variantFilePath = Path.Combine(directory, VariantTypeName + FileExtension.Json.Value);
133128
Directory.CreateDirectory(directory);
134-
using var stream = File.OpenWrite(variantFilePath);
129+
using var stream = File.Open(variantFilePath, FileMode.Create);
135130
await SchemaSerializer.SerializeJsonAsync(stream, Variant, Type.ClassType);
136131
foreach (string relativeFilePath in Variant.Files.FileRelativePaths)
137132
{

GUI/ViewModels/VariantViewModelContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,8 @@ public override async Task<bool> LoadVariantsBase(VariantManager variantManager)
840840
}
841841
}
842842

843+
await variantManager.UserCache.LoadEntries();
844+
variantManager.UpdateVariantsStatus();
843845
Variants = new(variantManager.UserCache.Entries
844846
.Select(entry => new VariantModel(entry, true)));
845847
if (Variants.Count == 0)

0 commit comments

Comments
 (0)