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 ### 项目分支变更 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/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/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 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/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; } 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; }