Fixed order of settings changed event & added app event for it

This commit is contained in:
tsommer committed 2022-10-29 20:16:44 +02:00
1 parent 58f30240dc
commit 9c0de0edd5
2 files changed
+17 -7

No files matched your search

+8
View File
@@ -4,6 +4,14 @@ namespace UI_WinForms;
internal static class AppEvents
{
#region Event: Settings were
internal static event EventHandler WhenSettingsChanged;
internal static void SettingsChanged() => WhenSettingsChanged?.Invoke(null, EventArgs.Empty);
#endregion
#region Event: Section was changed
// Section changed event which can be subscribed:
@@ -77,6 +77,8 @@ public sealed partial class Setting : UserControl
{
if(this.data.ChangeNeedsRestart)
this.needRestart = true;
AppEvents.SettingsChanged();
}
private void UpdateExplanation() => this.labelExplanation.Text = this.data.SettingExplanation();
@@ -257,7 +259,6 @@ public sealed partial class Setting : UserControl
};
// Setup the change event handler:
dropdown.SelectedValueChanged += (sender, args) => changeTrigger();
dropdown.SelectedValueChanged += async (sender, args) => await AppSettings.SetDeepLAction(dropdown.SelectedIndex switch
{
0 => SettingDeepLAction.MANUAL,
@@ -265,6 +266,7 @@ public sealed partial class Setting : UserControl
_ => SettingDeepLAction.MANUAL,
});
dropdown.SelectedValueChanged += (sender, args) => changeTrigger();
// Apply the desired layout:
dropdown.Dock = DockStyle.Fill;
@@ -314,12 +316,12 @@ public sealed partial class Setting : UserControl
dropdown.SelectedIndex = currentCultureDropdownIndex;
// Setup the change event handler:
dropdown.SelectedValueChanged += (sender, args) => changeTrigger();
dropdown.SelectedValueChanged += async (sender, args) =>
{
if(dropdown.SelectedItem is ComboBoxItem selectedItem)
await AppSettings.SetDeepLSourceCultureIndex(selectedItem.CultureIndex);
};
dropdown.SelectedValueChanged += (sender, args) => changeTrigger();
// Apply the desired layout:
dropdown.Dock = DockStyle.Fill;
@@ -414,7 +416,6 @@ public sealed partial class Setting : UserControl
};
// Setup the change event handler:
dropdown.SelectedValueChanged += (sender, args) => changeTrigger();
dropdown.SelectedValueChanged += async (sender, args) => await AppSettings.SetGeneratorMode(dropdown.SelectedIndex switch
{
0 => SettingGeneratorMode.AUTOMATIC,
@@ -422,6 +423,7 @@ public sealed partial class Setting : UserControl
_ => SettingGeneratorMode.AUTOMATIC,
});
dropdown.SelectedValueChanged += (sender, args) => changeTrigger();
// Apply the desired layout:
dropdown.Dock = DockStyle.Fill;
@@ -449,8 +451,8 @@ public sealed partial class Setting : UserControl
// Set up an checkbox:
var checkbox = new CheckBox();
checkbox.Checked = currentSetting;
checkbox.CheckedChanged += (sender, args) => changeTrigger();
checkbox.CheckedChanged += async (sender, args) => await AppSettings.SetGeneratorDotnetEnabled(checkbox.Checked);
checkbox.CheckedChanged += (sender, args) => changeTrigger();
checkbox.Text = "Enable .NET Generator";
// Apply the desired layout:
@@ -486,8 +488,8 @@ public sealed partial class Setting : UserControl
// Set up a textbox:
var textbox = new TextBox();
textbox.Text = currentSetting;
textbox.TextChanged += (sender, args) => changeTrigger();
textbox.TextChanged += async (sender, args) => await AppSettings.SetGeneratorDotnetDestinationPath(textbox.Text);
textbox.TextChanged += (sender, args) => changeTrigger();
textbox.Dock = DockStyle.Fill;
textbox.Margin = new Padding(0, 13, 0, 13);
layout.Controls.Add(textbox, 0, 0);
@@ -536,8 +538,8 @@ public sealed partial class Setting : UserControl
// Set up an checkbox:
var checkbox = new CheckBox();
checkbox.Checked = currentSetting;
checkbox.CheckedChanged += (sender, args) => changeTrigger();
checkbox.CheckedChanged += async (sender, args) => await AppSettings.SetGeneratorGodotEnabled(checkbox.Checked);
checkbox.CheckedChanged += (sender, args) => changeTrigger();
checkbox.Text = "Enable Godot Generator";
// Apply the desired layout:
@@ -573,8 +575,8 @@ public sealed partial class Setting : UserControl
// Set up a textbox:
var textbox = new TextBox();
textbox.Text = currentSetting;
textbox.TextChanged += (sender, args) => changeTrigger();
textbox.TextChanged += async (sender, args) => await AppSettings.SetGeneratorGodotDestinationPath(textbox.Text);
textbox.TextChanged += (sender, args) => changeTrigger();
textbox.Dock = DockStyle.Fill;
textbox.Margin = new Padding(0, 13, 0, 13);
layout.Controls.Add(textbox, 0, 0);