From 7735c705c0fb197bd0c751cc530c70751bb0c01c Mon Sep 17 00:00:00 2001 From: drdev Date: Wed, 30 Oct 2013 13:15:56 +0000 Subject: [PATCH] Fix so right-clicking stat label that's the only selected one in group will re-select all other labels in group --- .../deckeditor/controllers/CCardCatalog.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java b/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java index 867a7c26865..edf06385cc4 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java @@ -121,12 +121,32 @@ public enum CCardCatalog implements ICDoc { public void run() { if (!disableFiltering) { disableFiltering = true; + + boolean foundSelected = false; for (SItemManagerUtil.StatTypes s : SItemManagerUtil.StatTypes.values()) { if (s.group == group && s != st) { - VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(s).setSelected(false); + FLabel lbl = VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(s); + if (lbl.getSelected()) { + foundSelected = true; + lbl.setSelected(false); + } } } - statLabel.setSelected(true); + if (!statLabel.getSelected()) { + statLabel.setSelected(true); + } + else if (!foundSelected) { + //if statLabel only label in group selected, re-select all other labels in group + for (SItemManagerUtil.StatTypes s : SItemManagerUtil.StatTypes.values()) { + if (s.group == group && s != st) { + FLabel lbl = VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(s); + if (!lbl.getSelected()) { + lbl.setSelected(true); + } + } + } + } + disableFiltering = false; applyCurrentFilter(); }