From 5b22daf4accbb32703e09af289b4abb76702670b Mon Sep 17 00:00:00 2001 From: Miepee Date: Fri, 3 Mar 2023 13:21:50 +0100 Subject: [PATCH] Move modsettingsProfileDropdown fully to a DataStore --- AM2RLauncher/AM2RLauncher/MainForm/MainForm.Events.cs | 8 ++++---- .../AM2RLauncher/MainForm/MainForm.StateMachine.cs | 9 +++------ AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.Events.cs b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.Events.cs index 8199fa5..af85c2b 100644 --- a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.Events.cs +++ b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.Events.cs @@ -40,7 +40,7 @@ public partial class MainForm : Form private void ProfileLayoutLoadComplete(object sender, EventArgs e) { // Safety check - if ((modSettingsProfileDropDown == null) || (modSettingsProfileDropDown.Items.Count != 0)) return; + if ((modSettingsProfileDropDown == null) || (modSettingsProfileDropDown.DataStore.Any())) return; addModButton.Enabled = false; settingsProfileLabel.TextColor = LauncherColors.Inactive; modSettingsProfileDropDown.Enabled = false; @@ -792,12 +792,12 @@ public partial class MainForm : Form /// private void ModSettingsProfileDropDownSelectedIndexChanged(object sender, EventArgs e) { - if (modSettingsProfileDropDown.SelectedIndex == -1 && modSettingsProfileDropDown.Items.Count == 0) return; + if (modSettingsProfileDropDown.SelectedIndex == -1 && !modSettingsProfileDropDown.DataStore.Any()) return; - string profileName = modSettingsProfileDropDown.Items[modSettingsProfileDropDown.SelectedIndex].Text; + string profileName = modSettingsProfileDropDown.SelectedKey; log.Info("SettingsProfileDropDown.SelectedIndex has been changed to " + modSettingsProfileDropDown.SelectedIndex + "."); - if (modSettingsProfileDropDown.SelectedIndex <= 0 || modSettingsProfileDropDown.Items.Count == 0) + if (modSettingsProfileDropDown.SelectedIndex <= 0 || !modSettingsProfileDropDown.DataStore.Any()) { deleteModButton.Enabled = false; deleteModButton.ToolTip = null; diff --git a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.StateMachine.cs b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.StateMachine.cs index cc21b96..c8217b7 100644 --- a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.StateMachine.cs +++ b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.StateMachine.cs @@ -1,5 +1,6 @@ using Eto.Drawing; using System; +using System.Linq; using AM2RLauncherLib; using AM2RLauncherLib.XML; using AM2RLauncher.Language; @@ -167,7 +168,7 @@ public partial class MainForm private void UpdateModSettingsState() { // Safety check - if (modSettingsProfileDropDown == null || modSettingsProfileDropDown.Items.Count <= 0) return; + if (modSettingsProfileDropDown == null || modSettingsProfileDropDown.DataStore.Any()) return; bool enabled = false; switch (updateState) @@ -183,7 +184,7 @@ public partial class MainForm } if (apkButtonState == ApkButtonState.Creating) enabled = false; - string selectedProfileName = modSettingsProfileDropDown.Items[modSettingsProfileDropDown.SelectedIndex].Text; + string selectedProfileName = modSettingsProfileDropDown.SelectedKey; settingsProfileLabel.TextColor = LauncherColors.Green; modSettingsProfileDropDown.Enabled = enabled; @@ -205,16 +206,12 @@ public partial class MainForm } - Color col = enabled ? LauncherColors.Green : LauncherColors.Inactive; if (OS.IsWindows) modSettingsProfileDropDown.TextColor = col; settingsProfileLabel.TextColor = col; - - if (enabled) - modSettingsProfileDropDown.SelectedIndex = profileDropDown.SelectedIndex; } /// diff --git a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs index 3927966..9508d29 100644 --- a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs +++ b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs @@ -552,7 +552,7 @@ public partial class MainForm : Form if (OS.IsLinux) modSettingsProfileDropDown = new DropDown(); - modSettingsProfileDropDown.DataStore = profileDropDown.DataStore; // It's actually more comfortable if it's outside, because of GTK shenanigans + modSettingsProfileDropDown.DataStore = profileDropDown.DataStore; modSettingsProfileDropDown.Bind(m => m.SelectedIndex, profileDropDown, p => p.SelectedIndex); desktopShortcutButton = new SmallColorButton(Text.CreateShortcut);