diff --git a/SpineViewer/Resources/AppResource.cs b/SpineViewer/Resources/AppResource.cs index 0f076b0..8768b8d 100644 --- a/SpineViewer/Resources/AppResource.cs +++ b/SpineViewer/Resources/AppResource.cs @@ -19,6 +19,8 @@ namespace SpineViewer.Resources public static string Str_GeneratePreviewsTitle => Get("Str_GeneratePreviewsTitle"); public static string Str_DeletePreviewsTitle => Get("Str_DeletePreviewsTitle"); public static string Str_AddSpineObjectsTitle => Get("Str_AddSpineObjectsTitle"); + public static string Str_OpenSkelFileTitle => Get("Str_OpenSkelFileTitle"); + public static string Str_OpenAtlasFileTitle => Get("Str_OpenAtlasFileTitle"); public static string Str_ReloadSpineObjectsTitle => Get("Str_ReloadSpineObjectsTitle"); public static string Str_CustomFFmpegExporterTitle => Get("Str_CustomFFmpegExporterTitle"); diff --git a/SpineViewer/Resources/Strings/en.xaml b/SpineViewer/Resources/Strings/en.xaml index 130bea1..f77be99 100644 --- a/SpineViewer/Resources/Strings/en.xaml +++ b/SpineViewer/Resources/Strings/en.xaml @@ -37,6 +37,8 @@ Show {0} items, {1} selected Add... + Select Skeleton File (skel) + Select Atlas File (atlas) Add from Clipboard Remove Remove All diff --git a/SpineViewer/Resources/Strings/ja.xaml b/SpineViewer/Resources/Strings/ja.xaml index ff01c69..6a84772 100644 --- a/SpineViewer/Resources/Strings/ja.xaml +++ b/SpineViewer/Resources/Strings/ja.xaml @@ -37,6 +37,8 @@ 表示 全{0}件、選択中{1}件 追加... + スケルトンファイルを選択(skel) + アトラスファイルを選択(atlas) クリップボードから追加 削除 すべて削除 diff --git a/SpineViewer/Resources/Strings/zh.xaml b/SpineViewer/Resources/Strings/zh.xaml index c254bd8..f138b4c 100644 --- a/SpineViewer/Resources/Strings/zh.xaml +++ b/SpineViewer/Resources/Strings/zh.xaml @@ -37,6 +37,8 @@ 显示 共 {0} 项,已选择 {1} 项 添加... + 选择骨骼文件(skel) + 选择图集文件(atlas) 从剪贴板添加 移除 移除全部 diff --git a/SpineViewer/Services/DialogService.cs b/SpineViewer/Services/DialogService.cs index 25ac263..6e11135 100644 --- a/SpineViewer/Services/DialogService.cs +++ b/SpineViewer/Services/DialogService.cs @@ -61,6 +61,18 @@ namespace SpineViewer.Services return dialog.ShowDialog() ?? false; } + public static bool ShowOpenFileDialog(out string? fileName, string title = null, string filter = "") + { + var dialog = new OpenFileDialog() { Title = title, Filter = filter }; + if (dialog.ShowDialog() is true) + { + fileName = dialog.FileName; + return true; + } + fileName = null; + return false; + } + /// /// 获取用户选择的文件夹 /// diff --git a/SpineViewer/ViewModels/MainWindow/SpineObjectListViewModel.cs b/SpineViewer/ViewModels/MainWindow/SpineObjectListViewModel.cs index 55d5f23..4ed4a70 100644 --- a/SpineViewer/ViewModels/MainWindow/SpineObjectListViewModel.cs +++ b/SpineViewer/ViewModels/MainWindow/SpineObjectListViewModel.cs @@ -107,7 +107,12 @@ namespace SpineViewer.ViewModels.MainWindow private void AddSpineObject_Execute() { - MessagePopupService.Info("Not Implemented, please drag files into here or add them from clipboard :)"); + if (!DialogService.ShowOpenFileDialog(out var skelFileName, AppResource.Str_OpenSkelFileTitle)) + return; + if (!DialogService.ShowOpenFileDialog(out var atlasFileName, AppResource.Str_OpenAtlasFileTitle)) + return; + AddSpineObject(skelFileName, atlasFileName); + _logger.LogCurrentProcessMemoryUsage(); } ///