SU optional tabs

This commit is contained in:
jafea7 2025-04-10 21:40:09 +10:00
parent 6c9f90ffc3
commit ca0701da61
2 changed files with 62 additions and 3 deletions

View File

@ -1,5 +1,8 @@
package ctbrec.ui.sites.showup; package ctbrec.ui.sites.showup;
import java.util.ArrayList;
import java.util.List;
import ctbrec.Config; import ctbrec.Config;
import ctbrec.sites.showup.Showup; import ctbrec.sites.showup.Showup;
import ctbrec.ui.DesktopIntegration; import ctbrec.ui.DesktopIntegration;
@ -13,6 +16,7 @@ import javafx.scene.control.Label;
import javafx.scene.control.PasswordField; import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority; import javafx.scene.layout.Priority;
public class ShowupConfigUI extends AbstractConfigUI { public class ShowupConfigUI extends AbstractConfigUI {
@ -72,6 +76,31 @@ public class ShowupConfigUI extends AbstractConfigUI {
GridPane.setColumnSpan(password, 2); GridPane.setColumnSpan(password, 2);
layout.add(password, 1, row++); layout.add(password, 1, row++);
Label tabsLabel = new Label("Tabs");
layout.add(tabsLabel, 0, row);
List<String> 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"); var createAccount = new Button("Create new Account");
createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink())); createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink()));
layout.add(createAccount, 1, row++); layout.add(createAccount, 1, row++);
@ -89,4 +118,18 @@ public class ShowupConfigUI extends AbstractConfigUI {
return layout; 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<String> getEnabledTabs() {
return new ArrayList<>(Config.getInstance().getSettings().showupTabs);
}
} }

View File

@ -1,5 +1,6 @@
package ctbrec.ui.sites.showup; package ctbrec.ui.sites.showup;
import ctbrec.Config;
import ctbrec.sites.showup.Showup; import ctbrec.sites.showup.Showup;
import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.sites.AbstractTabProvider;
import ctbrec.ui.tabs.ThumbOverviewTab; import ctbrec.ui.tabs.ThumbOverviewTab;
@ -7,7 +8,10 @@ import javafx.scene.Scene;
import javafx.scene.control.Tab; import javafx.scene.control.Tab;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
// import java.util.Objects;
public class ShowupTabProvider extends AbstractTabProvider { public class ShowupTabProvider extends AbstractTabProvider {
@ -18,9 +22,17 @@ public class ShowupTabProvider extends AbstractTabProvider {
@Override @Override
protected List<Tab> getSiteTabs(Scene scene) { protected List<Tab> getSiteTabs(Scene scene) {
List<Tab> tabs = new ArrayList<>(); List<Tab> tabs = new ArrayList<>();
tabs.add(createTab("Women", "female"));
tabs.add(createTab("Men", "male")); Map<String, String> tabMap = new HashMap<>();
tabs.add(createTab("All", "all")); tabMap.put("female", "Women");
tabMap.put("male", "Men");
tabMap.put("all", "All");
List<String> enabledTabs = getEnabledTabs();
for (String tab : enabledTabs) {
String title = tabMap.getOrDefault(tab, tab);
tabs.add(createTab(title, tab));
}
var showupFollowedTab = new ShowupFollowedTab("Favorites", (Showup) site); var showupFollowedTab = new ShowupFollowedTab("Favorites", (Showup) site);
showupFollowedTab.setRecorder(site.getRecorder()); showupFollowedTab.setRecorder(site.getRecorder());
tabs.add(showupFollowedTab); tabs.add(showupFollowedTab);
@ -38,4 +50,8 @@ public class ShowupTabProvider extends AbstractTabProvider {
tab.setRecorder(site.getRecorder()); tab.setRecorder(site.getRecorder());
return tab; return tab;
} }
private List<String> getEnabledTabs() {
return new ArrayList<>(Config.getInstance().getSettings().showupTabs);
}
} }