diff --git a/SpineViewer/Models/PreferenceModel.cs b/SpineViewer/Models/PreferenceModel.cs index a5ca444..2a90d8a 100644 --- a/SpineViewer/Models/PreferenceModel.cs +++ b/SpineViewer/Models/PreferenceModel.cs @@ -33,6 +33,9 @@ namespace SpineViewer.Models #region 模型加载首选项 + [ObservableProperty] + private bool _isShown = true; + [ObservableProperty] private bool _usePma; @@ -70,6 +73,9 @@ namespace SpineViewer.Models #region 程序选项 + [ObservableProperty] + private bool _renderSelectedOnly; + [ObservableProperty] private AppLanguage _appLanguage; diff --git a/SpineViewer/Models/SpineObjectModel.cs b/SpineViewer/Models/SpineObjectModel.cs index 461211f..3f1bff6 100644 --- a/SpineViewer/Models/SpineObjectModel.cs +++ b/SpineViewer/Models/SpineObjectModel.cs @@ -101,7 +101,7 @@ namespace SpineViewer.Models get { lock (_lock) return _isShown; } set { lock (_lock) SetProperty(ref _isShown, value); } } - private bool _isShown = true; + private bool _isShown = _loadOptions.IsShown; public bool UsePma { @@ -497,7 +497,7 @@ namespace SpineViewer.Models public class SpineObjectLoadOptions { - public bool AutoSave { get; set; } + public bool IsShown { get; set; } = true; public bool UsePma { get; set; } public bool DebugTexture { get; set; } = true; public bool DebugBounds { get; set; } diff --git a/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs b/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs index 49d806d..257662b 100644 --- a/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs +++ b/SpineViewer/ViewModels/MainWindow/PreferenceViewModel.cs @@ -96,6 +96,8 @@ namespace SpineViewer.ViewModels.MainWindow ForcePremul = ForcePremul, ForceNearest = ForceNearest, ForceMipmap = ForceMipmap, + + IsShown = IsShown, UsePma = UsePma, DebugTexture = DebugTexture, DebugBounds = DebugBounds, @@ -107,6 +109,8 @@ namespace SpineViewer.ViewModels.MainWindow DebugPaths = DebugPaths, DebugPoints = DebugPoints, DebugClippings = DebugClippings, + + RenderSelectedOnly = RenderSelectedOnly, AppLanguage = AppLanguage, }; } @@ -115,7 +119,10 @@ namespace SpineViewer.ViewModels.MainWindow ForcePremul = value.ForcePremul; ForceNearest = value.ForceNearest; ForceMipmap = value.ForceMipmap; + + IsShown = value.IsShown; UsePma = value.UsePma; + DebugTexture = value.DebugTexture; DebugBounds = value.DebugBounds; DebugBones = value.DebugBones; @@ -126,6 +133,8 @@ namespace SpineViewer.ViewModels.MainWindow DebugPaths = value.DebugPaths; DebugPoints = value.DebugPoints; DebugClippings = value.DebugClippings; + + RenderSelectedOnly = value.RenderSelectedOnly; AppLanguage = value.AppLanguage; } } @@ -152,9 +161,14 @@ namespace SpineViewer.ViewModels.MainWindow #endregion - #region 模型加载首选项 + public bool IsShown + { + get => SpineObjectModel.LoadOptions.IsShown; + set => SetProperty(SpineObjectModel.LoadOptions.IsShown, value, v => SpineObjectModel.LoadOptions.IsShown = v); + } + public bool UsePma { get => SpineObjectModel.LoadOptions.UsePma; @@ -227,6 +241,12 @@ namespace SpineViewer.ViewModels.MainWindow public static ImmutableArray AppLanguageOptions { get; } = Enum.GetValues().ToImmutableArray(); + public bool RenderSelectedOnly + { + get => _vmMain.SFMLRendererViewModel.RenderSelectedOnly; + set => SetProperty(_vmMain.SFMLRendererViewModel.RenderSelectedOnly, value, v => _vmMain.SFMLRendererViewModel.RenderSelectedOnly = v); + } + public AppLanguage AppLanguage { get => ((App)App.Current).Language; diff --git a/SpineViewer/Views/MainWindow.xaml b/SpineViewer/Views/MainWindow.xaml index 12334c1..5f996ee 100644 --- a/SpineViewer/Views/MainWindow.xaml +++ b/SpineViewer/Views/MainWindow.xaml @@ -691,7 +691,6 @@ - @@ -730,17 +729,13 @@