增加自动版本

This commit is contained in:
ww-rm
2025-03-20 14:20:26 +08:00
parent f7f7211ca2
commit a7a5521be1
4 changed files with 15 additions and 7 deletions

View File

@@ -22,7 +22,7 @@ namespace SpineViewer.Dialogs
comboBox_Version.DataSource = VersionHelper.Versions.ToList();
comboBox_Version.DisplayMember = "Value";
comboBox_Version.ValueMember = "Key";
comboBox_Version.SelectedValue = Spine.Version.V38;
comboBox_Version.SelectedValue = Spine.Version.Auto;
}
private void BatchOpenSpineDialog_Load(object sender, EventArgs e)
@@ -60,7 +60,7 @@ namespace SpineViewer.Dialogs
}
}
if (!Spine.Spine.ImplementedVersions.Contains(version))
if (version != Spine.Version.Auto && !Spine.Spine.ImplementedVersions.Contains(version))
{
MessageBox.Show($"{version.String()} 版本尚未实现(咕咕咕~", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;

View File

@@ -22,7 +22,12 @@ namespace SpineViewer.Dialogs
public ConvertFileFormatDialog()
{
InitializeComponent();
comboBox_SourceVersion.DataSource = VersionHelper.Versions.ToList();
// XXX: 文件格式转换暂时不支持自动检测版本
var impVersions = VersionHelper.Versions.ToDictionary();
impVersions.Remove(Spine.Version.Auto);
comboBox_SourceVersion.DataSource = impVersions.ToList();
comboBox_SourceVersion.DisplayMember = "Value";
comboBox_SourceVersion.ValueMember = "Key";
comboBox_SourceVersion.SelectedValue = Spine.Version.V38;

View File

@@ -22,7 +22,7 @@ namespace SpineViewer.Dialogs
comboBox_Version.DataSource = VersionHelper.Versions.ToList();
comboBox_Version.DisplayMember = "Value";
comboBox_Version.ValueMember = "Key";
comboBox_Version.SelectedValue = Spine.Version.V38;
comboBox_Version.SelectedValue = Spine.Version.Auto;
}
private void OpenSpineDialog_Load(object sender, EventArgs e)
@@ -78,7 +78,7 @@ namespace SpineViewer.Dialogs
atlasPath = Path.GetFullPath(atlasPath);
}
if (!Spine.Spine.ImplementedVersions.Contains(version))
if (version != Spine.Version.Auto && !Spine.Spine.ImplementedVersions.Contains(version))
{
MessageBox.Show($"{version.String()} 版本尚未实现(咕咕咕~", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
@@ -13,7 +14,8 @@ namespace SpineViewer.Spine
/// <summary>
/// 描述缓存
/// </summary>
public static readonly Dictionary<Version, string> Versions = [];
public static readonly ReadOnlyDictionary<Version, string> Versions;
private static readonly Dictionary<Version, string> versions = [];
static VersionHelper()
{
@@ -22,8 +24,9 @@ namespace SpineViewer.Spine
{
var field = typeof(Version).GetField(value.ToString());
var attribute = field?.GetCustomAttribute<DescriptionAttribute>();
Versions[(Version)value] = attribute?.Description ?? value.ToString();
versions[(Version)value] = attribute?.Description ?? value.ToString();
}
Versions = versions.AsReadOnly();
}
/// <summary>