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;
}