From 0d4bdcec2bdf87d43807a38e92b77c9335a8e4a9 Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 5 Aug 2014 22:43:08 +0000 Subject: [PATCH] Fix so quest deck editor can work properly after first opening other editor or switching quests --- forge-gui-mobile/src/forge/deck/FDeckEditor.java | 12 ++++++++---- .../src/forge/screens/quest/QuestMenu.java | 5 +++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index b5379e1fd53..894478a31bb 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -101,7 +101,7 @@ public class FDeckEditor extends TabPageScreen { return new Deck(); } })), - Quest(new DeckController(FModel.getQuest().getMyDecks(), new Supplier() { + Quest(new DeckController(null, new Supplier() { //delay setting root folder until quest loaded @Override public Deck get() { return new Deck(); @@ -1199,20 +1199,24 @@ public class FDeckEditor extends TabPageScreen { private T model; private boolean saved; private boolean modelInStorage; - private final IStorage rootFolder; + private IStorage rootFolder; private IStorage currentFolder; private String modelPath; private FDeckEditor editor; private final Supplier newModelCreator; protected DeckController(final IStorage folder0, final Supplier newModelCreator0) { + setRootFolder(folder0); + newModelCreator = newModelCreator0; + } + + public void setRootFolder(IStorage folder0) { rootFolder = folder0; - currentFolder = rootFolder; + currentFolder = folder0; model = null; saved = true; modelInStorage = false; modelPath = ""; - newModelCreator = newModelCreator0; } public Deck getDeck() { diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java index 5ac36dbdca3..74f3dbac8b8 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java @@ -5,6 +5,9 @@ import java.io.File; import forge.FThreads; import forge.Forge; import forge.assets.FSkinImage; +import forge.deck.Deck; +import forge.deck.FDeckEditor.DeckController; +import forge.deck.FDeckEditor.EditorType; import forge.interfaces.IButton; import forge.interfaces.ICheckBox; import forge.interfaces.IComboBox; @@ -152,8 +155,10 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats { if (data.exists()) { LoadingOverlay.show("Loading current quest...", new Runnable() { @Override + @SuppressWarnings("unchecked") public void run() { FModel.getQuest().load(QuestDataIO.loadData(data)); + ((DeckController)EditorType.Quest.getController()).setRootFolder(FModel.getQuest().getMyDecks()); if (reason == LaunchReason.StartQuestMode) { if (QuestUtil.getCurrentDeck() == null) { Forge.openScreen(decksScreen); //if quest doesn't have a deck specified, open decks screen by default