Просмотр исходного кода

Fix missing string enum converters for the config (#4634)

* Fix missing string enum converters for the config

* Revert changing KeyboardHotkeys to struct

This needs to be done because
Avalonia's TwoWay Binding breaks otherwise.
TSRBerry 3 лет назад
Родитель
Сommit
c9bc4eaf58

+ 6 - 2
Ryujinx.Common/Configuration/Hid/Controller/GamepadInputId.cs

@@ -1,5 +1,9 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller
+using Ryujinx.Common.Utilities;
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.Common.Configuration.Hid.Controller
 {
+    [JsonConverter(typeof(TypedStringEnumConverter<GamepadInputId>))]
     public enum GamepadInputId : byte
     {
         Unbound,
@@ -51,4 +55,4 @@
 
         Count
     }
-}
+}

+ 6 - 2
Ryujinx.Common/Configuration/Hid/Controller/StickInputId.cs

@@ -1,5 +1,9 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller
+using Ryujinx.Common.Utilities;
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.Common.Configuration.Hid.Controller
 {
+    [JsonConverter(typeof(TypedStringEnumConverter<StickInputId>))]
     public enum StickInputId : byte
     {
         Unbound,
@@ -8,4 +12,4 @@
 
         Count
     }
-}
+}

+ 3 - 1
Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs

@@ -1,6 +1,8 @@
 namespace Ryujinx.Common.Configuration.Hid
 {
-    public struct KeyboardHotkeys
+    // NOTE: Please don't change this to struct.
+    //       This breaks Avalonia's TwoWay binding, which makes us unable to save new KeyboardHotkeys.
+    public class KeyboardHotkeys
     {
         public Key ToggleVsync { get; set; }
         public Key Screenshot { get; set; }