diff --git a/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs b/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs index 9e5e8b7df..09810b974 100644 --- a/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs @@ -6,6 +6,7 @@ using System.Text.RegularExpressions; using System.Windows.Controls; using Mages.Core; using Flow.Launcher.Plugin.Calculator.Views; +using Flow.Launcher.Plugin.Calculator.ViewModels; namespace Flow.Launcher.Plugin.Calculator { @@ -28,12 +29,14 @@ namespace Flow.Launcher.Plugin.Calculator internal static PluginInitContext Context { get; set; } = null!; - private static Settings _settings; + private Settings _settings; + private SettingsViewModel _viewModel; public void Init(PluginInitContext context) { Context = context; _settings = context.API.LoadSettingJsonStorage(); + _viewModel = new SettingsViewModel(_settings); MagesEngine = new Engine(new Configuration { @@ -152,7 +155,7 @@ namespace Flow.Launcher.Plugin.Calculator return value.ToString(numberFormatInfo); } - private static string GetDecimalSeparator() + private string GetDecimalSeparator() { string systemDecimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; return _settings.DecimalSeparator switch @@ -197,5 +200,10 @@ namespace Flow.Launcher.Plugin.Calculator { return new CalculatorSettings(_settings); } + + public void OnCultureInfoChanged(CultureInfo newCulture) + { + DecimalSeparatorLocalized.UpdateLabels(_viewModel.AllDecimalSeparator); + } } } diff --git a/Plugins/Flow.Launcher.Plugin.Calculator/ViewModels/SettingsViewModel.cs b/Plugins/Flow.Launcher.Plugin.Calculator/ViewModels/SettingsViewModel.cs index a1f07bd17..87ae72fb6 100644 --- a/Plugins/Flow.Launcher.Plugin.Calculator/ViewModels/SettingsViewModel.cs +++ b/Plugins/Flow.Launcher.Plugin.Calculator/ViewModels/SettingsViewModel.cs @@ -8,12 +8,11 @@ namespace Flow.Launcher.Plugin.Calculator.ViewModels public SettingsViewModel(Settings settings) { Settings = settings; - DecimalSeparatorLocalized.UpdateLabels(AllDecimalSeparator); } public Settings Settings { get; init; } - public IEnumerable MaxDecimalPlacesRange => Enumerable.Range(1, 20); + public static IEnumerable MaxDecimalPlacesRange => Enumerable.Range(1, 20); public List AllDecimalSeparator { get; } = DecimalSeparatorLocalized.GetValues(); diff --git a/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml b/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml index 589f3ddcd..3355be095 100644 --- a/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml +++ b/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml @@ -9,7 +9,6 @@ d:DataContext="{d:DesignInstance Type=viewModels:SettingsViewModel}" d:DesignHeight="450" d:DesignWidth="800" - Loaded="CalculatorSettings_Loaded" mc:Ignorable="d"> diff --git a/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml.cs b/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml.cs index cbc74a19d..77cb4627d 100644 --- a/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml.cs +++ b/Plugins/Flow.Launcher.Plugin.Calculator/Views/CalculatorSettings.xaml.cs @@ -19,11 +19,5 @@ namespace Flow.Launcher.Plugin.Calculator.Views DataContext = _viewModel; InitializeComponent(); } - - private void CalculatorSettings_Loaded(object sender, RoutedEventArgs e) - { - DecimalSeparatorComboBox.SelectedItem = _settings.DecimalSeparator; - MaxDecimalPlaces.SelectedItem = _settings.MaxDecimalPlaces; - } } }