From 7f7248f82532fcf16a39ffbd9b7aece5a6215b3a Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 6 Nov 2024 23:24:01 +0800 Subject: [PATCH] fix sellAll --- .../adventure/scene/AdventureDeckEditor.java | 36 ++++++++++++------- .../src/forge/itemmanager/ItemManager.java | 9 +++++ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java index eb535fa372e..dafcfd8a832 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java +++ b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java @@ -221,11 +221,17 @@ public class AdventureDeckEditor extends TabPageScreen { } if (sellableCount > 0) { - FMenuItem moveToAutosell = new FMenuItem(Forge.getLocalizer().getMessage("lbltoSell", autoSellCount, sellableCount), Forge.hdbuttons ? FSkinImage.HDMINUS : FSkinImage.MINUS, e1 -> Current.player().autoSellCards.add(card)); + FMenuItem moveToAutosell = new FMenuItem(Forge.getLocalizer().getMessage("lbltoSell", autoSellCount, sellableCount), Forge.hdbuttons ? FSkinImage.HDMINUS : FSkinImage.MINUS, e1 -> { + Current.player().autoSellCards.add(card); + refresh(); + }); moveToAutosell.setEnabled(sellableCount - autoSellCount > 0); menu.addItem(moveToAutosell); - FMenuItem moveToCatalog = new FMenuItem(Forge.getLocalizer().getMessage("lbltoInventory", autoSellCount, sellableCount), Forge.hdbuttons ? FSkinImage.HDPLUS : FSkinImage.PLUS, e1 -> Current.player().autoSellCards.remove(card)); + FMenuItem moveToCatalog = new FMenuItem(Forge.getLocalizer().getMessage("lbltoInventory", autoSellCount, sellableCount), Forge.hdbuttons ? FSkinImage.HDPLUS : FSkinImage.PLUS, e1 -> { + Current.player().autoSellCards.remove(card); + refresh(); + }); moveToCatalog.setEnabled(autoSellCount > 0); menu.addItem(moveToCatalog); } @@ -587,18 +593,24 @@ public class AdventureDeckEditor extends TabPageScreen { final int finalCount = count; final int finalValue = value; addItem(new FMenuItem(Forge.getLocalizer().getMessage("lblSellCurrentFilters"), FSkinImage.QUEST_COINSTACK, e1 -> { - FOptionPane.showConfirmDialog(Forge.getLocalizer().getMessage("lblSellAllConfirm", finalCount, finalValue), Forge.getLocalizer().getMessage("lblSellCurrentFilters"), Forge.getLocalizer().getMessage("lblSell"), Forge.getLocalizer().getMessage("lblCancel"), false, new Callback() { - @Override - public void run(Boolean result) { - if (result) { - for (Map.Entry entry : catalogPage.cardManager.getFilteredItems()) { - AdventurePlayer.current().sellCard(entry.getKey(), entry.getValue()); + // aloww selling on catalog page only + if (catalogPage.cardManager.getCatalogSelectedIndex() == 1) { + FOptionPane.showConfirmDialog(Forge.getLocalizer().getMessage("lblSellAllConfirm", finalCount, finalValue), Forge.getLocalizer().getMessage("lblSellCurrentFilters"), Forge.getLocalizer().getMessage("lblSell"), Forge.getLocalizer().getMessage("lblCancel"), false, new Callback() { + @Override + public void run(Boolean result) { + if (result) { + for (Map.Entry entry : catalogPage.cardManager.getFilteredItems()) { + AdventurePlayer.current().sellCard(entry.getKey(), entry.getValue()); + } + catalogPage.refresh(); + lblGold.setText(String.valueOf(AdventurePlayer.current().getGold())); } - catalogPage.refresh(); - lblGold.setText(String.valueOf(AdventurePlayer.current().getGold())); } - } - }); + }); + } else { + FOptionPane.showErrorDialog(Forge.getLocalizer().getMessage("lblChoose") + " " + + Forge.getLocalizer().getMessage("lblShowCollection")); + } })); } ((DeckEditorPage) getSelectedPage()).buildDeckMenu(this); diff --git a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java index 4288eac0003..02058e8cfe4 100644 --- a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java @@ -669,6 +669,15 @@ public abstract class ItemManager extends FContainer im } } + public int getCatalogSelectedIndex() { + if (cardFormatFilter == null) + return 0; + if (cardFormatFilter.getMainComponent() instanceof FComboBox) { + return((FComboBox) cardFormatFilter.getMainComponent()).getSelectedIndex(); + } + return 0; + } + public void scrollSelectionIntoView() { currentView.scrollSelectionIntoView(); }