修复模型添加顺序错误

This commit is contained in:
ww-rm
2025-10-02 09:32:17 +08:00
parent b32485e122
commit 0202027edb

View File

@@ -111,7 +111,7 @@ namespace SpineViewer.ViewModels.MainWindow
return; return;
if (!DialogService.ShowOpenFileDialog(out var atlasFileName, AppResource.Str_OpenAtlasFileTitle)) if (!DialogService.ShowOpenFileDialog(out var atlasFileName, AppResource.Str_OpenAtlasFileTitle))
return; return;
AddSpineObject(skelFileName, atlasFileName); InsertSpineObject(skelFileName, atlasFileName);
_logger.LogCurrentProcessMemoryUsage(); _logger.LogCurrentProcessMemoryUsage();
} }
@@ -479,7 +479,7 @@ namespace SpineViewer.ViewModels.MainWindow
} }
else if (validPaths.Count > 0) else if (validPaths.Count > 0)
{ {
AddSpineObject(validPaths[0]); InsertSpineObject(validPaths[0]);
_logger.LogCurrentProcessMemoryUsage(); _logger.LogCurrentProcessMemoryUsage();
} }
} }
@@ -506,7 +506,7 @@ namespace SpineViewer.ViewModels.MainWindow
var skelPath = paths[i]; var skelPath = paths[i];
reporter.ProgressText = $"[{i}/{totalCount}] {skelPath}"; reporter.ProgressText = $"[{i}/{totalCount}] {skelPath}";
if (AddSpineObject(skelPath)) if (InsertSpineObject(skelPath))
success++; success++;
else else
error++; error++;
@@ -529,7 +529,7 @@ namespace SpineViewer.ViewModels.MainWindow
/// 安全地在列表头添加一个模型, 发生错误会输出日志 /// 安全地在列表头添加一个模型, 发生错误会输出日志
/// </summary> /// </summary>
/// <returns>是否添加成功</returns> /// <returns>是否添加成功</returns>
private bool AddSpineObject(string skelPath, string? atlasPath = null) private bool InsertSpineObject(string skelPath, string? atlasPath = null)
{ {
try try
{ {
@@ -650,7 +650,7 @@ namespace SpineViewer.ViewModels.MainWindow
} }
/// <summary> /// <summary>
/// 安全地在列表添加一个模型, 发生错误会输出日志 /// 安全地在列表末尾添加一个模型, 发生错误会输出日志
/// </summary> /// </summary>
/// <returns>是否添加成功</returns> /// <returns>是否添加成功</returns>
private bool AddSpineObject(SpineObjectWorkspaceConfigModel cfg) private bool AddSpineObject(SpineObjectWorkspaceConfigModel cfg)
@@ -658,7 +658,7 @@ namespace SpineViewer.ViewModels.MainWindow
try try
{ {
var sp = new SpineObjectModel(cfg); var sp = new SpineObjectModel(cfg);
lock (_spineObjectModels.Lock) _spineObjectModels.Insert(0, sp); lock (_spineObjectModels.Lock) _spineObjectModels.Add(sp);
if (Application.Current.Dispatcher.CheckAccess()) if (Application.Current.Dispatcher.CheckAccess())
{ {
RequestSelectionChanging?.Invoke(this, new(NotifyCollectionChangedAction.Reset)); RequestSelectionChanging?.Invoke(this, new(NotifyCollectionChangedAction.Reset));