From 3c365a58397ea0e554f1188f2b9c3c3892e302f1 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Mon, 24 Jul 2023 16:38:50 +0100 Subject: [PATCH] FastFlag editor: prevent duplicate additions --- .../Menu/Pages/FastFlagEditorPage.xaml | 2 +- .../Menu/Pages/FastFlagEditorPage.xaml.cs | 38 ++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml index 8bca461..2e053ec 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml +++ b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml @@ -32,7 +32,7 @@ - + diff --git a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs index f355295..112c49c 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs +++ b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs @@ -126,19 +126,39 @@ namespace Bloxstrap.UI.Elements.Menu.Pages if (dialog.Result != MessageBoxResult.OK) return; - var entry = new FastFlag - { - // Enabled = true, - Name = dialog.FlagNameTextBox.Text, - Value = dialog.FlagValueTextBox.Text - }; + string name = dialog.FlagNameTextBox.Text; + + FastFlag? entry; - _fastFlagList.Add(entry); + if (App.FastFlags.GetValue(name) is null) + { + entry = new FastFlag + { + // Enabled = true, + Name = dialog.FlagNameTextBox.Text, + Value = dialog.FlagValueTextBox.Text + }; + + _fastFlagList.Add(entry); + + App.FastFlags.SetValue(entry.Name, entry.Value); + } + else + { + Controls.ShowMessageBox("An entry for this FastFlag already exists.", MessageBoxImage.Information); + + if (!_showPresets && FastFlagManager.PresetFlags.Values.Contains(dialog.FlagNameTextBox.Text)) + { + _showPresets = true; + TogglePresetsButton.IsChecked = true; + ReloadList(); + } + + entry = _fastFlagList.Where(x => x.Name == name).FirstOrDefault(); + } DataGrid.SelectedItem = entry; DataGrid.ScrollIntoView(entry); - - App.FastFlags.SetValue(entry.Name, entry.Value); } private void DeleteButton_Click(object sender, RoutedEventArgs e)