From 7d1a1f1aeb8a8fa9b9d06a52ab375956fcae3b1e Mon Sep 17 00:00:00 2001 From: ww-rm Date: Thu, 19 Jun 2025 22:54:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A6=96=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E6=96=87=E4=BB=B6=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SpineViewer/Utils/JsonHelper.cs | 9 ++++++--- SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/SpineViewer/Utils/JsonHelper.cs b/SpineViewer/Utils/JsonHelper.cs index dcf8a89..96b3fb0 100644 --- a/SpineViewer/Utils/JsonHelper.cs +++ b/SpineViewer/Utils/JsonHelper.cs @@ -40,12 +40,15 @@ namespace SpineViewer.Utils /// /// 从文件反序列对象, 不会抛出异常 /// - public static bool Deserialize(string path, out T obj) + public static bool Deserialize(string path, out T obj, bool quietForNotExist = false) { if (!File.Exists(path)) { - _logger.Error("Json file {0} not found", path); - MessagePopupService.Error($"Json file {path} not found"); + if (!quietForNotExist) + { + _logger.Error("Json file {0} not found", path); + MessagePopupService.Error($"Json file {path} not found"); + } } else { diff --git a/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs b/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs index 87377ba..19ce571 100644 --- a/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs +++ b/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs @@ -63,7 +63,7 @@ namespace SpineViewer.ViewModels.MainWindow /// public void LoadPreference() { - if (JsonHelper.Deserialize(PreferenceFilePath, out var obj)) + if (JsonHelper.Deserialize(PreferenceFilePath, out var obj, true)) Preference = obj; } From 427d18df4cecce87d72787c16aa9f74bf674016c Mon Sep 17 00:00:00 2001 From: ww-rm Date: Thu, 19 Jun 2025 23:19:04 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8C=BA=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=8F=82=E6=95=B0=E5=A2=9E=E5=8A=A0=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SpineViewer/Models/WorkspaceModel.cs | 1 + .../MainWindow/ExplorerListViewModel.cs | 26 ++++++++++++------- .../MainWindow/MainWindowViewModel.cs | 2 ++ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/SpineViewer/Models/WorkspaceModel.cs b/SpineViewer/Models/WorkspaceModel.cs index 2a42630..534d13e 100644 --- a/SpineViewer/Models/WorkspaceModel.cs +++ b/SpineViewer/Models/WorkspaceModel.cs @@ -12,6 +12,7 @@ namespace SpineViewer.Models { public class WorkspaceModel { + public string? ExploringDirectory { get; set; } public RendererWorkspaceConfigModel RendererConfig { get; set; } = new(); public List LoadedSpineObjects { get; set; } = []; } diff --git a/SpineViewer/ViewModels/MainWindow/ExplorerListViewModel.cs b/SpineViewer/ViewModels/MainWindow/ExplorerListViewModel.cs index 6992cf0..2eccb6c 100644 --- a/SpineViewer/ViewModels/MainWindow/ExplorerListViewModel.cs +++ b/SpineViewer/ViewModels/MainWindow/ExplorerListViewModel.cs @@ -39,11 +39,6 @@ namespace SpineViewer.ViewModels.MainWindow private readonly MainWindowViewModel _vmMain; - /// - /// 当前目录路径 - /// - private string? _currentDirectory; - /// /// 当前目录下文件项缓存 /// @@ -54,12 +49,26 @@ namespace SpineViewer.ViewModels.MainWindow _vmMain = vmMain; } + /// + /// 当前目录路径 + /// + public string? CurrentDirectory + { + get => string.IsNullOrWhiteSpace(_currentDirectory) ? null : _currentDirectory; + set + { + if (!SetProperty(ref _currentDirectory, value)) return; + RefreshItems(); + } + } + private string? _currentDirectory; + /// /// 筛选字符串 /// public string? FilterString { - get => _filterString; + get => string.IsNullOrWhiteSpace(_filterString) ? null : _filterString; set { if (!SetProperty(ref _filterString, value)) return; @@ -95,10 +104,7 @@ namespace SpineViewer.ViewModels.MainWindow public RelayCommand Cmd_ChangeCurrentDirectory => _cmd_ChangeCurrentDirectory ??= new(() => { if (DialogService.ShowOpenFolderDialog(out var selectedPath)) - { - _currentDirectory = selectedPath; - RefreshItems(); - } + CurrentDirectory = selectedPath; }); private RelayCommand? _cmd_ChangeCurrentDirectory; diff --git a/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs b/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs index e5155ed..31bc195 100644 --- a/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs +++ b/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs @@ -118,12 +118,14 @@ namespace SpineViewer.ViewModels.MainWindow { return new() { + ExploringDirectory = _explorerListViewModel.CurrentDirectory, RendererConfig = _sfmlRendererViewModel.WorkspaceConfig, LoadedSpineObjects = _spineObjectListViewModel.LoadedSpineObjects }; } set { + _explorerListViewModel.CurrentDirectory = value.ExploringDirectory; _sfmlRendererViewModel.WorkspaceConfig = value.RendererConfig; _spineObjectListViewModel.LoadedSpineObjects = value.LoadedSpineObjects; } From 35f9357355d4988d46f7e4488bf030107641dae2 Mon Sep 17 00:00:00 2001 From: ww-rm Date: Thu, 19 Jun 2025 23:20:20 +0800 Subject: [PATCH 3/4] update changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69cd8b1..85728e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # CHANGELOG +## v0.15.2 + +- 修复首选项文件读取为空时的提示信息 +- 工作区参数增加浏览路径 + +## v0.15.1 + +- 新版本正式发布 + ## v0.15.0 ### 项目分支变更 From 593d9b771c1ec39d2d9eddcce092991dba2438cf Mon Sep 17 00:00:00 2001 From: ww-rm Date: Thu, 19 Jun 2025 23:21:43 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3v0.15.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NLog.Windows.Wpf/NLog.Windows.Wpf.csproj | 2 +- SFMLRenderer/SFMLRenderer.csproj | 2 +- Spine/Spine.csproj | 2 +- SpineViewer/SpineViewer.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/NLog.Windows.Wpf/NLog.Windows.Wpf.csproj b/NLog.Windows.Wpf/NLog.Windows.Wpf.csproj index 3767372..ad2dbdc 100644 --- a/NLog.Windows.Wpf/NLog.Windows.Wpf.csproj +++ b/NLog.Windows.Wpf/NLog.Windows.Wpf.csproj @@ -7,7 +7,7 @@ net8.0-windows $(SolutionDir)out false - 0.15.1 + 0.15.2 true diff --git a/SFMLRenderer/SFMLRenderer.csproj b/SFMLRenderer/SFMLRenderer.csproj index 2cbf67e..2bbbb15 100644 --- a/SFMLRenderer/SFMLRenderer.csproj +++ b/SFMLRenderer/SFMLRenderer.csproj @@ -7,7 +7,7 @@ net8.0-windows $(SolutionDir)out false - 0.15.1 + 0.15.2 true diff --git a/Spine/Spine.csproj b/Spine/Spine.csproj index 7c0d958..c219f8f 100644 --- a/Spine/Spine.csproj +++ b/Spine/Spine.csproj @@ -7,7 +7,7 @@ net8.0-windows $(SolutionDir)out false - 0.15.1 + 0.15.2 diff --git a/SpineViewer/SpineViewer.csproj b/SpineViewer/SpineViewer.csproj index 3025c24..9c734d0 100644 --- a/SpineViewer/SpineViewer.csproj +++ b/SpineViewer/SpineViewer.csproj @@ -7,7 +7,7 @@ net8.0-windows $(SolutionDir)out false - 0.15.1 + 0.15.2 WinExe true