From c676ef4714dbc30be4372a34324716af01b7ee3e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Mar 2026 10:50:08 -0500 Subject: [PATCH] Fix #2028: Suppress false unsaved changes prompt when loading a deck in the editor --- .../DeckBuilder/DeckBuilderWindow.xaml.cs | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/octgnFX/Octgn.JodsEngine/DeckBuilder/DeckBuilderWindow.xaml.cs b/octgnFX/Octgn.JodsEngine/DeckBuilder/DeckBuilderWindow.xaml.cs index f0cd9fa58..168356956 100644 --- a/octgnFX/Octgn.JodsEngine/DeckBuilder/DeckBuilderWindow.xaml.cs +++ b/octgnFX/Octgn.JodsEngine/DeckBuilder/DeckBuilderWindow.xaml.cs @@ -40,6 +40,7 @@ public partial class DeckBuilderWindow : INotifyPropertyChanged, IDeckBuilderPlu private Game _game; private ObservableSection _section; private bool _unsaved; + private bool _isLoading; private string selection = null; private Guid set_id; @@ -102,20 +103,29 @@ private void SetupAndLoadDeck(IDeck deck) { if (deck != null) { - if (deck is MetaDeck) - { - this._deckFilename = (deck as MetaDeck).Path; - } - var g = GameManager.Get().Games.FirstOrDefault(x => x.Id == deck.GameId); - if (g != null) + _isLoading = true; + try { - Game = g; - Deck = deck.AsObservable(); - SleeveImage = deck.Sleeve.GetImage(); + if (deck is MetaDeck) + { + this._deckFilename = (deck as MetaDeck).Path; + } + var g = GameManager.Get().Games.FirstOrDefault(x => x.Id == deck.GameId); + if (g != null) + { + Game = g; + Deck = deck.AsObservable(); + SleeveImage = deck.Sleeve.GetImage(); + } + else + { + TopMostMessageBox.Show($"The game required by the deck is not installed. Please install it first.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); + } } - else + finally { - TopMostMessageBox.Show($"The game required by the deck is not installed. Please install it first.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); + _isLoading = false; + _unsaved = false; } } } @@ -1314,6 +1324,7 @@ private void LoadSearchClick(object sender, RoutedEventArgs e) private void NotesTextChanged(object sender, TextChangedEventArgs e) { + if (_isLoading) return; _unsaved = true; Deck.Notes = (sender as TextBox).Text; }