diff options
author | Julien Lebosquain <julien@lebosquain.net> | 2024-08-04 20:04:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-04 19:04:12 +0100 |
commit | e85ee673b10da5a314e68cea88caeacd2918f311 (patch) | |
tree | d7f97b7ed8fdeb7ded1315be17ffe0bae4dcb8ae | |
parent | 42f22fe5d79a2aa5866e84f4b0bcf3d2114fa62a (diff) |
Fix LocaleExtension SetRawSource usages + language perf improvement (#7121)1.1.1370
* Avoid Avalonia CompiledBindingPathBuilder.SetRawSource
* Improve UI language change performance
-rw-r--r-- | src/Ryujinx/Common/Locale/LocaleExtension.cs | 7 | ||||
-rw-r--r-- | src/Ryujinx/Common/Locale/LocaleManager.cs | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/Ryujinx/Common/Locale/LocaleExtension.cs b/src/Ryujinx/Common/Locale/LocaleExtension.cs index 40661bf3a..b5964aa85 100644 --- a/src/Ryujinx/Common/Locale/LocaleExtension.cs +++ b/src/Ryujinx/Common/Locale/LocaleExtension.cs | |||
@@ -21,7 +21,7 @@ namespace Ryujinx.Ava.Common.Locale | |||
21 | 21 | ||
22 | var builder = new CompiledBindingPathBuilder(); | 22 | var builder = new CompiledBindingPathBuilder(); |
23 | 23 | ||
24 | builder.SetRawSource(LocaleManager.Instance) | 24 | builder |
25 | .Property(new ClrPropertyInfo("Item", | 25 | .Property(new ClrPropertyInfo("Item", |
26 | obj => (LocaleManager.Instance[keyToUse]), | 26 | obj => (LocaleManager.Instance[keyToUse]), |
27 | null, | 27 | null, |
@@ -32,7 +32,10 @@ namespace Ryujinx.Ava.Common.Locale | |||
32 | 32 | ||
33 | var path = builder.Build(); | 33 | var path = builder.Build(); |
34 | 34 | ||
35 | var binding = new CompiledBindingExtension(path); | 35 | var binding = new CompiledBindingExtension(path) |
36 | { | ||
37 | Source = LocaleManager.Instance | ||
38 | }; | ||
36 | 39 | ||
37 | return binding.ProvideValue(serviceProvider); | 40 | return binding.ProvideValue(serviceProvider); |
38 | } | 41 | } |
diff --git a/src/Ryujinx/Common/Locale/LocaleManager.cs b/src/Ryujinx/Common/Locale/LocaleManager.cs index 257611e65..96f648761 100644 --- a/src/Ryujinx/Common/Locale/LocaleManager.cs +++ b/src/Ryujinx/Common/Locale/LocaleManager.cs | |||
@@ -139,9 +139,11 @@ namespace Ryujinx.Ava.Common.Locale | |||
139 | 139 | ||
140 | foreach (var item in locale) | 140 | foreach (var item in locale) |
141 | { | 141 | { |
142 | this[item.Key] = item.Value; | 142 | _localeStrings[item.Key] = item.Value; |
143 | } | 143 | } |
144 | 144 | ||
145 | OnPropertyChanged("Item"); | ||
146 | |||
145 | LocaleChanged?.Invoke(); | 147 | LocaleChanged?.Invoke(); |
146 | } | 148 | } |
147 | 149 | ||