From ca0701da61b661fb893afa5615f45a5644a857bb Mon Sep 17 00:00:00 2001 From: jafea7 Date: Thu, 10 Apr 2025 21:40:09 +1000 Subject: [PATCH] SU optional tabs --- .../ui/sites/showup/ShowupConfigUI.java | 43 +++++++++++++++++++ .../ui/sites/showup/ShowupTabProvider.java | 22 ++++++++-- 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java index 905568eb..7dc3d487 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java @@ -1,5 +1,8 @@ package ctbrec.ui.sites.showup; +import java.util.ArrayList; +import java.util.List; + import ctbrec.Config; import ctbrec.sites.showup.Showup; import ctbrec.ui.DesktopIntegration; @@ -13,6 +16,7 @@ import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; public class ShowupConfigUI extends AbstractConfigUI { @@ -72,6 +76,31 @@ public class ShowupConfigUI extends AbstractConfigUI { GridPane.setColumnSpan(password, 2); layout.add(password, 1, row++); + Label tabsLabel = new Label("Tabs"); + layout.add(tabsLabel, 0, row); + List tabs = getEnabledTabs(); + + HBox checkboxContainer = new HBox(10); + + CheckBox female = new CheckBox("Female"); + female.setSelected(tabs.contains("female")); + female.setOnAction(e -> toggleTab("female", female.isSelected())); + HBox.setMargin(female, new Insets(0, 0, 0, 8)); + checkboxContainer.getChildren().add(female); + + CheckBox male = new CheckBox("Male"); + male.setSelected(tabs.contains("m")); + male.setOnAction(e -> toggleTab("m", male.isSelected())); + checkboxContainer.getChildren().add(male); + + CheckBox all = new CheckBox("All"); + all.setSelected(tabs.contains("all")); + all.setOnAction(e -> toggleTab("all", all.isSelected())); + checkboxContainer.getChildren().add(all); + + layout.add(checkboxContainer, 1, row, 3, 1); + row++; + var createAccount = new Button("Create new Account"); createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink())); layout.add(createAccount, 1, row++); @@ -89,4 +118,18 @@ public class ShowupConfigUI extends AbstractConfigUI { return layout; } + private void toggleTab(String tab, boolean selected) { + var settings = Config.getInstance().getSettings(); + if (selected) { + settings.showupTabs.add(tab); + } else { + settings.showupTabs.remove(tab); + } + save(); + } + + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().showupTabs); + } + } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java index 241bb25b..5dc21f0b 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java @@ -1,5 +1,6 @@ package ctbrec.ui.sites.showup; +import ctbrec.Config; import ctbrec.sites.showup.Showup; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; @@ -7,7 +8,10 @@ import javafx.scene.Scene; import javafx.scene.control.Tab; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +// import java.util.Objects; public class ShowupTabProvider extends AbstractTabProvider { @@ -18,9 +22,17 @@ public class ShowupTabProvider extends AbstractTabProvider { @Override protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); - tabs.add(createTab("Women", "female")); - tabs.add(createTab("Men", "male")); - tabs.add(createTab("All", "all")); + + Map tabMap = new HashMap<>(); + tabMap.put("female", "Women"); + tabMap.put("male", "Men"); + tabMap.put("all", "All"); + List enabledTabs = getEnabledTabs(); + for (String tab : enabledTabs) { + String title = tabMap.getOrDefault(tab, tab); + tabs.add(createTab(title, tab)); + } + var showupFollowedTab = new ShowupFollowedTab("Favorites", (Showup) site); showupFollowedTab.setRecorder(site.getRecorder()); tabs.add(showupFollowedTab); @@ -38,4 +50,8 @@ public class ShowupTabProvider extends AbstractTabProvider { tab.setRecorder(site.getRecorder()); return tab; } + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().showupTabs); + } + }