From 44b17573883159bd9e2e8fbc562e72202000434c Mon Sep 17 00:00:00 2001 From: Aigio Liu Date: Tue, 23 May 2023 15:38:56 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Steam/SteamServiceImpl2.cs | 2 +- .../Abstractions/SettingsPropertyBase.cs | 4 +- .../SettingsStructPropertyBase.cs | 1 + .../Infrastructure/SettingsProperty.cs | 7 +++- .../Settings/Steam/SteamSettings.cs | 38 ++++++++----------- src/BD.WTTS.Client/Startup/Startup.cs | 1 + 6 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/BD.WTTS.Client/Services.Implementation/Steam/SteamServiceImpl2.cs b/src/BD.WTTS.Client/Services.Implementation/Steam/SteamServiceImpl2.cs index 056a8b3ef..255a73985 100644 --- a/src/BD.WTTS.Client/Services.Implementation/Steam/SteamServiceImpl2.cs +++ b/src/BD.WTTS.Client/Services.Implementation/Steam/SteamServiceImpl2.cs @@ -36,7 +36,7 @@ sealed class SteamServiceImpl2 : SteamServiceBaseImpl, ISteamConnectService public override ISteamConnectService Conn => this; - protected override string? StratSteamDefaultParameter => SteamSettings.SteamStratParameter.ActualValue; + protected override string? StratSteamDefaultParameter => SteamSettings.SteamStratParameter.Value; protected override bool IsRunSteamAdministrator => SteamSettings.IsRunSteamAdministrator.Value; diff --git a/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsPropertyBase.cs b/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsPropertyBase.cs index 19b24187e..dab8dad51 100644 --- a/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsPropertyBase.cs +++ b/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsPropertyBase.cs @@ -15,7 +15,7 @@ public abstract class SettingsPropertyBase public abstract void Reset(); } -[DebuggerDisplay("Value={Value}, PropertyName={PropertyName}, AutoSave={AutoSave}")] +[DebuggerDisplay("Value={ActualValue}, PropertyName={PropertyName}, AutoSave={AutoSave}")] public abstract class SettingsPropertyBase : SettingsPropertyBase, INotifyPropertyChanged { /// @@ -84,7 +84,7 @@ public abstract class SettingsPropertyBase : SettingsPropertyBase, INoti add { if (value == null) return; - ValueChanged += _handlers[value] = (sender, args) => value(sender, new PropertyChangedEventArgs(nameof(ActualValue))); + ValueChanged += _handlers[value] = (sender, args) => value(sender, new PropertyChangedEventArgs("Value")); } remove diff --git a/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsStructPropertyBase.cs b/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsStructPropertyBase.cs index bce1f7a79..e3c5faed3 100644 --- a/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsStructPropertyBase.cs +++ b/src/BD.WTTS.Client/Settings/Infrastructure/Abstractions/SettingsStructPropertyBase.cs @@ -14,6 +14,7 @@ public class SettingsStructPropertyBase.Default.Equals(value, Default)) + { + setter_value = default; + } + setter(monitor.CurrentValue, setter_value); // 赋值模型类属性 OnValueChanged(value, value); // 调用变更事件 if (!notSave && AutoSave) // 自动保存 { diff --git a/src/BD.WTTS.Client/Settings/Steam/SteamSettings.cs b/src/BD.WTTS.Client/Settings/Steam/SteamSettings.cs index 629e9ae33..99693507f 100644 --- a/src/BD.WTTS.Client/Settings/Steam/SteamSettings.cs +++ b/src/BD.WTTS.Client/Settings/Steam/SteamSettings.cs @@ -69,40 +69,38 @@ public static class SteamSettings static SteamSettings() { - if (!IApplication.IsDesktop()) return; +#if (WINDOWS || MACCATALYST || MACOS || LINUX) && !(IOS || ANDROID) IsRunSteamMinimized.ValueChanged += IsRunSteamMinimized_ValueChanged; IsRunSteamNoCheckUpdate.ValueChanged += IsRunSteamNoCheckUpdate_ValueChanged; IsRunSteamChina.ValueChanged += IsRunSteamChina_ValueChanged; +#endif } static void IsRunSteamNoCheckUpdate_ValueChanged(object? sender, SettingsPropertyValueChangedEventArgs e) { - if (!e.NewValue.HasValue) - return; + if (!e.NewValue.HasValue) return; if (e.NewValue.Value) - SteamStratParameter.ActualValue += " -noverifyfiles"; - else if (SteamStratParameter.ActualValue != null) - SteamStratParameter.ActualValue = SteamStratParameter.ActualValue.Replace("-noverifyfiles", "").Trim(); + SteamStratParameter.Value += " -noverifyfiles"; + else if (SteamStratParameter.Value != null) + SteamStratParameter.Value = SteamStratParameter.Value.Replace("-noverifyfiles", "").Trim(); } static void IsRunSteamMinimized_ValueChanged(object? sender, SettingsPropertyValueChangedEventArgs e) { - if (!e.NewValue.HasValue) - return; + if (!e.NewValue.HasValue) return; if (e.NewValue.Value) - SteamStratParameter.ActualValue += " -silent"; - else if (SteamStratParameter.ActualValue != null) - SteamStratParameter.ActualValue = SteamStratParameter.ActualValue.Replace("-silent", "").Trim(); + SteamStratParameter.Value += " -silent"; + else if (SteamStratParameter.Value != null) + SteamStratParameter.Value = SteamStratParameter.Value.Replace("-silent", "").Trim(); } static void IsRunSteamChina_ValueChanged(object? sender, SettingsPropertyValueChangedEventArgs e) { - if (!e.NewValue.HasValue) - return; + if (!e.NewValue.HasValue) return; if (e.NewValue.Value) - SteamStratParameter.ActualValue += " -steamchina"; - else if (SteamStratParameter.ActualValue != null) - SteamStratParameter.ActualValue = SteamStratParameter.ActualValue.Replace("-steamchina", "").Trim(); + SteamStratParameter.Value += " -steamchina"; + else if (SteamStratParameter.Value != null) + SteamStratParameter.Value = SteamStratParameter.Value.Replace("-steamchina", "").Trim(); } /// @@ -112,12 +110,8 @@ public static class SteamSettings public static SettingsProperty SteamSkin { get; } = new(); /// - public static SettingsProperty SteamProgramPath = new() - { -#if (WINDOWS || MACCATALYST || MACOS || LINUX) && !(IOS || ANDROID) - Value = steamService.SteamProgramPath, -#endif - }; + public static SettingsProperty SteamProgramPath { get; } + = new(steamService.SteamProgramPath); /// public static SettingsProperty CustomSteamPath { get; } = new() diff --git a/src/BD.WTTS.Client/Startup/Startup.cs b/src/BD.WTTS.Client/Startup/Startup.cs index 9749ed8f5..18283e6d5 100644 --- a/src/BD.WTTS.Client/Startup/Startup.cs +++ b/src/BD.WTTS.Client/Startup/Startup.cs @@ -322,6 +322,7 @@ public abstract partial class Startup { ISettings.Load(configurationBuilder, directoryExists), ISettings.Load(configurationBuilder, directoryExists), + ISettings.Load(configurationBuilder, directoryExists), }; if (TryGetPlugins(out var plugins_cfg)) {