From 44e51ac4cee1c4315d171a17cc8fb2b2a26697c6 Mon Sep 17 00:00:00 2001 From: jafea7 Date: Thu, 10 Apr 2025 21:41:02 +1000 Subject: [PATCH] SR optional tabs --- .../ui/sites/streamray/StreamrayConfigUI.java | 47 ++++++++++++++++++- .../sites/streamray/StreamrayTabProvider.java | 24 ++++++++-- 2 files changed, 66 insertions(+), 5 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java index 3cc33e35..18e9f53f 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java @@ -1,17 +1,21 @@ package ctbrec.ui.sites.streamray; +import java.util.ArrayList; +import java.util.List; + import ctbrec.Config; import ctbrec.sites.streamray.Streamray; import ctbrec.ui.settings.SettingsTab; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; -import javafx.scene.control.ToggleGroup; +// import javafx.scene.control.ToggleGroup; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; -import javafx.scene.control.RadioButton; +// import javafx.scene.control.RadioButton; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; +// import javafx.scene.layout.HBox; import javafx.scene.layout.HBox; public class StreamrayConfigUI extends AbstractConfigUI { @@ -55,6 +59,31 @@ public class StreamrayConfigUI extends AbstractConfigUI { layout.add(cb, 1, row++); 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("F")); + female.setOnAction(e -> toggleTab("F", female.isSelected())); + HBox.setMargin(female, new Insets(0, 0, 0, 7)); + 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("Trans"); + all.setSelected(tabs.contains("TS")); + all.setOnAction(e -> toggleTab("TS", all.isSelected())); + checkboxContainer.getChildren().add(all); + + layout.add(checkboxContainer, 1, row, 4, 1); + row++; + var deleteCookies = new Button("Delete Cookies"); deleteCookies.setOnAction(e -> site.getHttpClient().clearCookies()); layout.add(deleteCookies, 1, row); @@ -64,4 +93,18 @@ public class StreamrayConfigUI extends AbstractConfigUI { return layout; } + private void toggleTab(String tab, boolean selected) { + var settings = Config.getInstance().getSettings(); + if (selected) { + settings.streamrayTabs.add(tab); + } else { + settings.streamrayTabs.remove(tab); + } + save(); + } + + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs); + } + } diff --git a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java index 8e1d41ce..59ca3eb5 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java @@ -1,5 +1,6 @@ package ctbrec.ui.sites.streamray; +import ctbrec.Config; import ctbrec.sites.streamray.Streamray; import ctbrec.sites.streamray.StreamrayModel; import ctbrec.ui.sites.AbstractTabProvider; @@ -8,7 +9,9 @@ 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; import java.util.function.Predicate; @@ -24,9 +27,20 @@ public class StreamrayTabProvider extends AbstractTabProvider { @Override protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); - tabs.add(createTab("Girls", m -> Objects.equals("F", m.getGender()))); - tabs.add(createTab("Boys", m -> Objects.equals("M", m.getGender()))); - tabs.add(createTab("Trans", m -> Objects.equals("TS", m.getGender()))); + + Map tabMap = new HashMap<>(); + tabMap.put("F", "Female"); + tabMap.put("M", "Male"); + tabMap.put("TS", "Trans"); + List enabledTabs = getEnabledTabs(); + for (String tab : enabledTabs) { + String title = tabMap.getOrDefault(tab, tab); + tabs.add(createTab(title, m -> Objects.equals(tab, m.getGender()))); + } + + // tabs.add(createTab("Girls", m -> Objects.equals("F", m.getGender()))); + // tabs.add(createTab("Boys", m -> Objects.equals("M", m.getGender()))); + // tabs.add(createTab("Trans", m -> Objects.equals("TS", m.getGender()))); tabs.add(createTab("New", StreamrayModel::isNew)); tabs.add(followedTab); return tabs; @@ -52,4 +66,8 @@ public class StreamrayTabProvider extends AbstractTabProvider { public Tab getFollowedTab() { return followedTab; } + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs); + } + }