From 35eca6f0385caafbeebcd5836873e3b30c349bcb Mon Sep 17 00:00:00 2001 From: leriomaggio Date: Thu, 28 Oct 2021 23:20:31 +0100 Subject: [PATCH] Better control on Deck save and editor state set + FIX set deck name the loadDeck method now has a better handling of the deck (model) status, also wrt. the state of the UI editor. If the deck is Stored, the editor will be in "modified - not saved" state. --- .../deckeditor/controllers/DeckController.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckController.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckController.java index 2db718a3d7f..36d0000a1e2 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckController.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckController.java @@ -91,17 +91,21 @@ public class DeckController { } public void loadDeck(Deck deck, boolean substituteCurrentDeck) { + boolean isStored; if (view.getCatalogManager().isInfinite()) { Deck currentDeck = view.getHumanDeck(); if (substituteCurrentDeck || currentDeck.isEmpty()) { newModel(); - } + isStored = false; + } else + isStored = !this.modelPath.equals(""); } else { CardPool catalogClone = new CardPool(view.getInitialCatalog()); deck = pickFromCatalog(deck, catalogClone); ItemPool catalogPool = view.getCatalogManager().getPool(); catalogPool.clear(); catalogPool.addAll(catalogClone); + isStored = false; } Deck currentDeck = view.getHumanDeck(); @@ -112,9 +116,9 @@ public class DeckController { } } // Allow to specify the name of Deck in DeckImporter - if ((deck.hasName()) && (!currentDeck.hasName())) - view.getHumanDeck().setName(deck.getName()); - onModelChanged(false); + if (deck.hasName()) + currentDeck.setName(deck.getName()); + this.setModel((T) currentDeck, isStored); } private Deck pickFromCatalog(Deck deck, CardPool catalog) { @@ -237,7 +241,7 @@ public class DeckController { } else { //TODO: Make this smarter currentFolder = rootFolder; modelPath = ""; - setSaved(true); + setSaved(this.model.isEmpty()); } }