From 5bbd74efd8c1717be3590e429b7f61131d03a70c Mon Sep 17 00:00:00 2001 From: jafea7 Date: Thu, 10 Apr 2025 21:41:52 +1000 Subject: [PATCH] XC optional tabs --- .../ui/sites/xlovecam/XloveCamConfigUI.java | 64 +++++++++++++++++++ .../sites/xlovecam/XloveCamTabProvider.java | 48 ++++++-------- 2 files changed, 85 insertions(+), 27 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java index b52d460c..ef33585e 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java @@ -1,5 +1,8 @@ package ctbrec.ui.sites.xlovecam; +import java.util.ArrayList; +import java.util.List; + import ctbrec.Config; import ctbrec.sites.xlovecam.XloveCam; import ctbrec.ui.DesktopIntegration; @@ -72,6 +75,53 @@ public class XloveCamConfigUI extends AbstractConfigUI { GridPane.setColumnSpan(password, 2); layout.add(password, 1, row++); + Label tabsLabel = new Label("Tabs"); + layout.add(tabsLabel, 0, row); + List tabs = getEnabledTabs(); + + GridPane checkboxGrid = new GridPane(); + checkboxGrid.setHgap(10); + checkboxGrid.setVgap(5); + checkboxGrid.setPadding(new Insets(0, 0, 0, 7)); + + CheckBox girls = new CheckBox("Young Women"); + girls.setSelected(tabs.contains("1")); + girls.setOnAction(e -> toggleTab("1", girls.isSelected())); + checkboxGrid.add(girls, 0, 0); + + CheckBox ladies = new CheckBox("Ladies"); + ladies.setSelected(tabs.contains("13")); + ladies.setOnAction(e -> toggleTab("13", ladies.isSelected())); + checkboxGrid.add(ladies, 1, 0); + + CheckBox mature = new CheckBox("Mature Female"); + mature.setSelected(tabs.contains("6")); + mature.setOnAction(e -> toggleTab("6", mature.isSelected())); + checkboxGrid.add(mature, 2, 0); + + CheckBox couples = new CheckBox("Couples"); + couples.setSelected(tabs.contains("2")); + couples.setOnAction(e -> toggleTab("2", couples.isSelected())); + checkboxGrid.add(couples, 3, 0); + + CheckBox lesbian = new CheckBox("Lesbian"); + lesbian.setSelected(tabs.contains("3")); + lesbian.setOnAction(e -> toggleTab("3", lesbian.isSelected())); + checkboxGrid.add(lesbian, 0, 1); + + CheckBox male = new CheckBox("Male"); + male.setSelected(tabs.contains("7")); + male.setOnAction(e -> toggleTab("7", male.isSelected())); + checkboxGrid.add(male, 1, 1); + + CheckBox trans = new CheckBox("Trans"); + trans.setSelected(tabs.contains("5")); + trans.setOnAction(e -> toggleTab("5", trans.isSelected())); + checkboxGrid.add(trans, 2, 1); + + layout.add(checkboxGrid, 1, row, 4, 2); + row += 2; + var createAccount = new Button("Create new Account"); createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink())); layout.add(createAccount, 1, row++); @@ -89,4 +139,18 @@ public class XloveCamConfigUI extends AbstractConfigUI { return layout; } + private void toggleTab(String tab, boolean selected) { + var settings = Config.getInstance().getSettings(); + if (selected) { + settings.xlovecamTabs.add(tab); + } else { + settings.xlovecamTabs.remove(tab); + } + save(); + } + + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs); + } + } diff --git a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java index 7c033303..0933fdbe 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java @@ -1,5 +1,6 @@ package ctbrec.ui.sites.xlovecam; +import ctbrec.Config; import ctbrec.sites.xlovecam.XloveCam; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.PaginatedScheduledService; @@ -9,8 +10,10 @@ import javafx.scene.control.Tab; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; +// import java.util.Objects; public class XloveCamTabProvider extends AbstractTabProvider { @@ -36,33 +39,20 @@ public class XloveCamTabProvider extends AbstractTabProvider { updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM_NEW, "3")); tabs.add(createTab("New", updateService)); - // Young Women - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "1")); - tabs.add(createTab("Young Women", updateService)); - - // Ladies - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "13")); - tabs.add(createTab("Ladies", updateService)); - - // Mature - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "6")); - tabs.add(createTab("Mature Female", updateService)); - - // Couples - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "2")); - tabs.add(createTab("Couples", updateService)); - - // Lesbian - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "3")); - tabs.add(createTab("Lesbian", updateService)); - - // Male - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "7")); - tabs.add(createTab("Male", updateService)); - - // Trans - updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "5")); - tabs.add(createTab("Trans", updateService)); + Map tabMap = new HashMap<>(); + tabMap.put("1", "Young Women"); + tabMap.put("13", "Ladies"); + tabMap.put("6", "Mature Female"); + tabMap.put("2", "Couples"); + tabMap.put("3", "Lesbian"); + tabMap.put("7", "Male"); + tabMap.put("5", "Trans"); + List enabledTabs = getEnabledTabs(); + for (String tab : enabledTabs) { + String title = tabMap.getOrDefault(tab, tab); + updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, tab)); + tabs.add(createTab(title, updateService)); + } return tabs; } @@ -73,4 +63,8 @@ public class XloveCamTabProvider extends AbstractTabProvider { return tab; } + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs); + } + }