移动浏览目录至用户状态
This commit is contained in:
@@ -33,6 +33,12 @@ namespace SpineViewer.Models
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 浏览页面状态
|
||||||
|
|
||||||
|
public string? ExploringDirectory { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region 预览画面状态
|
#region 预览画面状态
|
||||||
|
|
||||||
public uint ResolutionX { get; set; } = 1500;
|
public uint ResolutionX { get; set; } = 1500;
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ namespace SpineViewer.Models
|
|||||||
{
|
{
|
||||||
public class WorkspaceModel
|
public class WorkspaceModel
|
||||||
{
|
{
|
||||||
public string? ExploringDirectory { get; set; }
|
|
||||||
public RendererWorkspaceConfigModel RendererConfig { get; set; } = new();
|
public RendererWorkspaceConfigModel RendererConfig { get; set; } = new();
|
||||||
public List<SpineObjectWorkspaceConfigModel> LoadedSpineObjects { get; set; } = [];
|
public List<SpineObjectWorkspaceConfigModel> LoadedSpineObjects { get; set; } = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -181,14 +181,12 @@ namespace SpineViewer.ViewModels.MainWindow
|
|||||||
{
|
{
|
||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
ExploringDirectory = _explorerListViewModel.CurrentDirectory,
|
|
||||||
RendererConfig = _sfmlRendererViewModel.WorkspaceConfig,
|
RendererConfig = _sfmlRendererViewModel.WorkspaceConfig,
|
||||||
LoadedSpineObjects = _spineObjectListViewModel.LoadedSpineObjects
|
LoadedSpineObjects = _spineObjectListViewModel.LoadedSpineObjects
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_explorerListViewModel.CurrentDirectory = value.ExploringDirectory;
|
|
||||||
_sfmlRendererViewModel.WorkspaceConfig = value.RendererConfig;
|
_sfmlRendererViewModel.WorkspaceConfig = value.RendererConfig;
|
||||||
_spineObjectListViewModel.LoadedSpineObjects = value.LoadedSpineObjects;
|
_spineObjectListViewModel.LoadedSpineObjects = value.LoadedSpineObjects;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,6 +189,7 @@ public partial class MainWindow : Window
|
|||||||
_userStateWatchers.Add(PropertyWatcher.Watch(_rightPanelGrid.RowDefinitions[0], RowDefinition.HeightProperty, DelayedSaveUserState));
|
_userStateWatchers.Add(PropertyWatcher.Watch(_rightPanelGrid.RowDefinitions[0], RowDefinition.HeightProperty, DelayedSaveUserState));
|
||||||
_userStateWatchers.Add(PropertyWatcher.Watch(_rightPanelGrid.RowDefinitions[2], RowDefinition.HeightProperty, DelayedSaveUserState));
|
_userStateWatchers.Add(PropertyWatcher.Watch(_rightPanelGrid.RowDefinitions[2], RowDefinition.HeightProperty, DelayedSaveUserState));
|
||||||
|
|
||||||
|
_vm.ExplorerListViewModel.PropertyChanged += ExplorerListUserStateChanged;
|
||||||
_vm.SFMLRendererViewModel.PropertyChanged += SFMLRendererUserStateChanged;
|
_vm.SFMLRendererViewModel.PropertyChanged += SFMLRendererUserStateChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,6 +235,7 @@ public partial class MainWindow : Window
|
|||||||
|
|
||||||
// 撤除所有状态监听器
|
// 撤除所有状态监听器
|
||||||
_vm.SFMLRendererViewModel.PropertyChanged -= SFMLRendererUserStateChanged;
|
_vm.SFMLRendererViewModel.PropertyChanged -= SFMLRendererUserStateChanged;
|
||||||
|
_vm.ExplorerListViewModel.PropertyChanged -= ExplorerListUserStateChanged;
|
||||||
foreach (var w in _userStateWatchers) w.Dispose();
|
foreach (var w in _userStateWatchers) w.Dispose();
|
||||||
_userStateWatchers.Clear();
|
_userStateWatchers.Clear();
|
||||||
|
|
||||||
@@ -284,6 +286,8 @@ public partial class MainWindow : Window
|
|||||||
_rightPanelGrid.RowDefinitions[0].Height = new(m.RightPanelGridRow0Height, GridUnitType.Star);
|
_rightPanelGrid.RowDefinitions[0].Height = new(m.RightPanelGridRow0Height, GridUnitType.Star);
|
||||||
_rightPanelGrid.RowDefinitions[2].Height = new(m.RightPanelGridRow2Height, GridUnitType.Star);
|
_rightPanelGrid.RowDefinitions[2].Height = new(m.RightPanelGridRow2Height, GridUnitType.Star);
|
||||||
|
|
||||||
|
_vm.ExplorerListViewModel.CurrentDirectory = m.ExploringDirectory;
|
||||||
|
|
||||||
_vm.SFMLRendererViewModel.SetResolution(m.ResolutionX, m.ResolutionY);
|
_vm.SFMLRendererViewModel.SetResolution(m.ResolutionX, m.ResolutionY);
|
||||||
_vm.SFMLRendererViewModel.MaxFps = m.MaxFps;
|
_vm.SFMLRendererViewModel.MaxFps = m.MaxFps;
|
||||||
_vm.SFMLRendererViewModel.Speed = m.Speed;
|
_vm.SFMLRendererViewModel.Speed = m.Speed;
|
||||||
@@ -317,6 +321,8 @@ public partial class MainWindow : Window
|
|||||||
RightPanelGridRow0Height = _rightPanelGrid.RowDefinitions[0].Height.Value,
|
RightPanelGridRow0Height = _rightPanelGrid.RowDefinitions[0].Height.Value,
|
||||||
RightPanelGridRow2Height = _rightPanelGrid.RowDefinitions[2].Height.Value,
|
RightPanelGridRow2Height = _rightPanelGrid.RowDefinitions[2].Height.Value,
|
||||||
|
|
||||||
|
ExploringDirectory = _vm.ExplorerListViewModel.CurrentDirectory,
|
||||||
|
|
||||||
ResolutionX = _vm.SFMLRendererViewModel.ResolutionX,
|
ResolutionX = _vm.SFMLRendererViewModel.ResolutionX,
|
||||||
ResolutionY = _vm.SFMLRendererViewModel.ResolutionY,
|
ResolutionY = _vm.SFMLRendererViewModel.ResolutionY,
|
||||||
MaxFps = _vm.SFMLRendererViewModel.MaxFps,
|
MaxFps = _vm.SFMLRendererViewModel.MaxFps,
|
||||||
@@ -356,6 +362,18 @@ public partial class MainWindow : Window
|
|||||||
_saveUserStateTimer.Start();
|
_saveUserStateTimer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ExplorerListUserStateChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
switch (e.PropertyName)
|
||||||
|
{
|
||||||
|
case nameof(ExplorerListViewModel.CurrentDirectory):
|
||||||
|
DelayedSaveUserState();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void SFMLRendererUserStateChanged(object? sender, PropertyChangedEventArgs e)
|
private void SFMLRendererUserStateChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
{
|
{
|
||||||
switch (e.PropertyName)
|
switch (e.PropertyName)
|
||||||
|
|||||||
Reference in New Issue
Block a user