From b100f107d4299ef865cd9029eb418d97b25f9b5c Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Thu, 6 Dec 2018 14:16:10 +0100 Subject: [PATCH] Move site activation checkbox to their config ui --- .../src/main/java/ctbrec/ui/SettingsTab.java | 39 ++----------------- .../ui/sites/bonga/BongaCamsConfigUI.java | 38 +++++++++++++----- .../ctbrec/ui/sites/cam4/Cam4ConfigUI.java | 36 ++++++++++++++--- .../java/ctbrec/ui/sites/cam4/Cam4SiteUi.java | 2 +- .../ui/sites/camsoda/CamsodaConfigUI.java | 30 +++++++++++--- .../sites/chaturbate/ChaturbateConfigUi.java | 39 +++++++++++++++---- .../ui/sites/chaturbate/ChaturbateSiteUi.java | 2 +- .../sites/myfreecams/MyFreeCamsConfigUI.java | 18 +++++++++ 8 files changed, 141 insertions(+), 63 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/SettingsTab.java b/client/src/main/java/ctbrec/ui/SettingsTab.java index a5182481..7d56a308 100644 --- a/client/src/main/java/ctbrec/ui/SettingsTab.java +++ b/client/src/main/java/ctbrec/ui/SettingsTab.java @@ -13,7 +13,6 @@ import org.slf4j.LoggerFactory; import ctbrec.Config; import ctbrec.Hmac; -import ctbrec.Settings; import ctbrec.Settings.DirectoryStructure; import ctbrec.StringUtil; import ctbrec.sites.ConfigUI; @@ -83,7 +82,7 @@ public class SettingsTab extends Tab implements TabSelectionListener { private ComboBox startTab; private List sites; private Label restartLabel; - private Accordion credentialsAccordion = new Accordion(); + private Accordion siteConfigAccordion = new Accordion(); public SettingsTab(List sites) { this.sites = sites; @@ -127,8 +126,7 @@ public class SettingsTab extends Tab implements TabSelectionListener { leftSide.getChildren().add(createRecordLocationPanel()); //right side - rightSide.getChildren().add(createSiteSelectionPanel()); - rightSide.getChildren().add(credentialsAccordion); + rightSide.getChildren().add(siteConfigAccordion); proxySettingsPane = new ProxySettingsPane(this); rightSide.getChildren().add(proxySettingsPane); for (int i = 0; i < sites.size(); i++) { @@ -136,39 +134,10 @@ public class SettingsTab extends Tab implements TabSelectionListener { ConfigUI siteConfig = SiteUiFactory.getUi(site).getConfigUI(); if(siteConfig != null) { TitledPane pane = new TitledPane(site.getName(), siteConfig.createConfigPanel()); - credentialsAccordion.getPanes().add(pane); + siteConfigAccordion.getPanes().add(pane); } } - credentialsAccordion.setExpandedPane(credentialsAccordion.getPanes().get(0)); - } - - private Node createSiteSelectionPanel() { - Settings settings = Config.getInstance().getSettings(); - GridPane layout = createGridLayout(); - - int row = 0; - for (Site site : sites) { - Label l = new Label(site.getName()); - layout.add(l, 0, row); - CheckBox enabled = new CheckBox(); - enabled.setSelected(!settings.disabledSites.contains(site.getName())); - enabled.setOnAction((e) -> { - if(enabled.isSelected()) { - settings.disabledSites.remove(site.getName()); - } else { - settings.disabledSites.add(site.getName()); - } - saveConfig(); - showRestartRequired(); - }); - GridPane.setMargin(l, new Insets(CHECKBOX_MARGIN, 0, 0, 0)); - GridPane.setMargin(enabled, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); - layout.add(enabled, 1, row++); - } - - TitledPane siteSelection = new TitledPane("Enabled Sites", layout); - siteSelection.setCollapsible(false); - return siteSelection; + siteConfigAccordion.setExpandedPane(siteConfigAccordion.getPanes().get(0)); } private Node createRecordLocationPanel() { diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java index ce8381dd..9597977f 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java @@ -1,6 +1,7 @@ package ctbrec.ui.sites.bonga; import ctbrec.Config; +import ctbrec.Settings; import ctbrec.sites.bonga.BongaCams; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.SettingsTab; @@ -8,6 +9,7 @@ import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; @@ -24,32 +26,50 @@ public class BongaCamsConfigUI extends AbstractConfigUI { @Override public Parent createConfigPanel() { GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("BongaCams User"), 0, 0); - TextField username = new TextField(Config.getInstance().getSettings().bongaUsername); + Settings settings = Config.getInstance().getSettings(); + + int row = 0; + Label l = new Label("Active"); + layout.add(l, 0, row); + CheckBox enabled = new CheckBox(); + enabled.setSelected(!settings.disabledSites.contains(bongaCams.getName())); + enabled.setOnAction((e) -> { + if(enabled.isSelected()) { + settings.disabledSites.remove(bongaCams.getName()); + } else { + settings.disabledSites.add(bongaCams.getName()); + } + save(); + }); + GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + layout.add(enabled, 1, row++); + + layout.add(new Label("BongaCams User"), 0, row); + TextField username = new TextField(settings.bongaUsername); username.textProperty().addListener((ob, o, n) -> { - Config.getInstance().getSettings().bongaUsername = username.getText(); + settings.bongaUsername = username.getText(); save(); }); GridPane.setFillWidth(username, true); GridPane.setHgrow(username, Priority.ALWAYS); GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); + layout.add(username, 1, row++); - layout.add(new Label("BongaCams Password"), 0, 1); + layout.add(new Label("BongaCams Password"), 0, row); PasswordField password = new PasswordField(); - password.setText(Config.getInstance().getSettings().bongaPassword); + password.setText(settings.bongaPassword); password.focusedProperty().addListener((e) -> { - Config.getInstance().getSettings().bongaPassword = password.getText(); + settings.bongaPassword = password.getText(); save(); }); GridPane.setFillWidth(password, true); GridPane.setHgrow(password, Priority.ALWAYS); GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); + layout.add(password, 1, row++); Button createAccount = new Button("Create new Account"); createAccount.setOnAction((e) -> DesktopIntegration.open(bongaCams.getAffiliateLink())); - layout.add(createAccount, 1, 2); + layout.add(createAccount, 1, row++); GridPane.setColumnSpan(createAccount, 2); GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java index bacea351..bd61bc90 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java @@ -1,6 +1,7 @@ package ctbrec.ui.sites.cam4; import ctbrec.Config; +import ctbrec.Settings; import ctbrec.sites.cam4.Cam4; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.SettingsTab; @@ -8,6 +9,7 @@ import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; @@ -15,10 +17,34 @@ import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; public class Cam4ConfigUI extends AbstractConfigUI { + private Cam4 cam4; + + public Cam4ConfigUI(Cam4 cam4) { + this.cam4 = cam4; + } + @Override public Parent createConfigPanel() { GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("Cam4 User"), 0, 0); + Settings settings = Config.getInstance().getSettings(); + + int row = 0; + Label l = new Label("Active"); + layout.add(l, 0, row); + CheckBox enabled = new CheckBox(); + enabled.setSelected(!settings.disabledSites.contains(cam4.getName())); + enabled.setOnAction((e) -> { + if(enabled.isSelected()) { + settings.disabledSites.remove(cam4.getName()); + } else { + settings.disabledSites.add(cam4.getName()); + } + save(); + }); + GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + layout.add(enabled, 1, row++); + + layout.add(new Label("Cam4 User"), 0, row); TextField username = new TextField(Config.getInstance().getSettings().cam4Username); username.textProperty().addListener((ob, o, n) -> { Config.getInstance().getSettings().cam4Username = username.getText(); @@ -27,9 +53,9 @@ public class Cam4ConfigUI extends AbstractConfigUI { GridPane.setFillWidth(username, true); GridPane.setHgrow(username, Priority.ALWAYS); GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); + layout.add(username, 1, row++); - layout.add(new Label("Cam4 Password"), 0, 1); + layout.add(new Label("Cam4 Password"), 0, row); PasswordField password = new PasswordField(); password.setText(Config.getInstance().getSettings().cam4Password); password.focusedProperty().addListener((e) -> { @@ -39,11 +65,11 @@ public class Cam4ConfigUI extends AbstractConfigUI { GridPane.setFillWidth(password, true); GridPane.setHgrow(password, Priority.ALWAYS); GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); + layout.add(password, 1, row++); Button createAccount = new Button("Create new Account"); createAccount.setOnAction((e) -> DesktopIntegration.open(Cam4.AFFILIATE_LINK)); - layout.add(createAccount, 1, 2); + layout.add(createAccount, 1, row++); GridPane.setColumnSpan(createAccount, 2); GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java index d0c5d2b5..66c4d776 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4SiteUi.java @@ -30,7 +30,7 @@ public class Cam4SiteUi implements SiteUI { public Cam4SiteUi(Cam4 cam4) { this.cam4 = cam4; tabProvider = new Cam4TabProvider(cam4); - configUI = new Cam4ConfigUI(); + configUI = new Cam4ConfigUI(cam4); } @Override diff --git a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java index b19abc95..7cb3e964 100644 --- a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java @@ -1,6 +1,7 @@ package ctbrec.ui.sites.camsoda; import ctbrec.Config; +import ctbrec.Settings; import ctbrec.sites.camsoda.Camsoda; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.SettingsTab; @@ -8,6 +9,7 @@ import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; @@ -24,7 +26,25 @@ public class CamsodaConfigUI extends AbstractConfigUI { @Override public Parent createConfigPanel() { GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("CamSoda User"), 0, 0); + Settings settings = Config.getInstance().getSettings(); + + int row = 0; + Label l = new Label("Active"); + layout.add(l, 0, row); + CheckBox enabled = new CheckBox(); + enabled.setSelected(!settings.disabledSites.contains(camsoda.getName())); + enabled.setOnAction((e) -> { + if(enabled.isSelected()) { + settings.disabledSites.remove(camsoda.getName()); + } else { + settings.disabledSites.add(camsoda.getName()); + } + save(); + }); + GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + layout.add(enabled, 1, row++); + + layout.add(new Label("CamSoda User"), 0, row); TextField username = new TextField(Config.getInstance().getSettings().camsodaUsername); username.textProperty().addListener((ob, o, n) -> { Config.getInstance().getSettings().camsodaUsername = username.getText(); @@ -33,9 +53,9 @@ public class CamsodaConfigUI extends AbstractConfigUI { GridPane.setFillWidth(username, true); GridPane.setHgrow(username, Priority.ALWAYS); GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); + layout.add(username, 1, row++); - layout.add(new Label("CamSoda Password"), 0, 1); + layout.add(new Label("CamSoda Password"), 0, row); PasswordField password = new PasswordField(); password.setText(Config.getInstance().getSettings().camsodaPassword); password.textProperty().addListener((ob, o, n) -> { @@ -45,11 +65,11 @@ public class CamsodaConfigUI extends AbstractConfigUI { GridPane.setFillWidth(password, true); GridPane.setHgrow(password, Priority.ALWAYS); GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); + layout.add(password, 1, row++); Button createAccount = new Button("Create new Account"); createAccount.setOnAction((e) -> DesktopIntegration.open(camsoda.getAffiliateLink())); - layout.add(createAccount, 1, 2); + layout.add(createAccount, 1, row++); GridPane.setColumnSpan(createAccount, 2); GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java index 706ff33c..f1e1cf55 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java @@ -1,6 +1,7 @@ package ctbrec.ui.sites.chaturbate; import ctbrec.Config; +import ctbrec.Settings; import ctbrec.sites.chaturbate.Chaturbate; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.SettingsTab; @@ -8,6 +9,7 @@ import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; @@ -15,11 +17,34 @@ import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; public class ChaturbateConfigUi extends AbstractConfigUI { + private Chaturbate chaturbate; + + public ChaturbateConfigUi(Chaturbate chaturbate) { + this.chaturbate = chaturbate; + } + @Override public Parent createConfigPanel() { + Settings settings = Config.getInstance().getSettings(); GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("Chaturbate User"), 0, 0); + int row = 0; + Label l = new Label("Active"); + layout.add(l, 0, row); + CheckBox enabled = new CheckBox(); + enabled.setSelected(!settings.disabledSites.contains(chaturbate.getName())); + enabled.setOnAction((e) -> { + if(enabled.isSelected()) { + settings.disabledSites.remove(chaturbate.getName()); + } else { + settings.disabledSites.add(chaturbate.getName()); + } + save(); + }); + GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + layout.add(enabled, 1, row++); + + layout.add(new Label("Chaturbate User"), 0, row); TextField username = new TextField(Config.getInstance().getSettings().username); username.textProperty().addListener((ob, o, n) -> { Config.getInstance().getSettings().username = username.getText(); @@ -28,9 +53,9 @@ public class ChaturbateConfigUi extends AbstractConfigUI { GridPane.setFillWidth(username, true); GridPane.setHgrow(username, Priority.ALWAYS); GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); + layout.add(username, 1, row++); - layout.add(new Label("Chaturbate Password"), 0, 1); + layout.add(new Label("Chaturbate Password"), 0, row); PasswordField password = new PasswordField(); password.setText(Config.getInstance().getSettings().password); password.textProperty().addListener((ob, o, n) -> { @@ -40,9 +65,9 @@ public class ChaturbateConfigUi extends AbstractConfigUI { GridPane.setFillWidth(password, true); GridPane.setHgrow(password, Priority.ALWAYS); GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); + layout.add(password, 1, row++); - layout.add(new Label("Chaturbate Base URL"), 0, 2); + layout.add(new Label("Chaturbate Base URL"), 0, row); TextField baseUrl = new TextField(); baseUrl.setText(Config.getInstance().getSettings().chaturbateBaseUrl); baseUrl.textProperty().addListener((ob, o, n) -> { @@ -52,11 +77,11 @@ public class ChaturbateConfigUi extends AbstractConfigUI { GridPane.setFillWidth(baseUrl, true); GridPane.setHgrow(baseUrl, Priority.ALWAYS); GridPane.setColumnSpan(baseUrl, 2); - layout.add(baseUrl, 1, 2); + layout.add(baseUrl, 1, row++); Button createAccount = new Button("Create new Account"); createAccount.setOnAction((e) -> DesktopIntegration.open(Chaturbate.REGISTRATION_LINK)); - layout.add(createAccount, 1, 3); + layout.add(createAccount, 1, row++); GridPane.setColumnSpan(createAccount, 2); GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java index 7765e717..fdca9ec5 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateSiteUi.java @@ -16,7 +16,7 @@ public class ChaturbateSiteUi implements SiteUI { public ChaturbateSiteUi(Chaturbate chaturbate) { this.chaturbate = chaturbate; tabProvider = new ChaturbateTabProvider(chaturbate); - configUi = new ChaturbateConfigUi(); + configUi = new ChaturbateConfigUi(chaturbate); } @Override diff --git a/client/src/main/java/ctbrec/ui/sites/myfreecams/MyFreeCamsConfigUI.java b/client/src/main/java/ctbrec/ui/sites/myfreecams/MyFreeCamsConfigUI.java index 0783a68a..67d30a07 100644 --- a/client/src/main/java/ctbrec/ui/sites/myfreecams/MyFreeCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/myfreecams/MyFreeCamsConfigUI.java @@ -1,6 +1,7 @@ package ctbrec.ui.sites.myfreecams; import ctbrec.Config; +import ctbrec.Settings; import ctbrec.sites.mfc.MyFreeCams; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.SettingsTab; @@ -26,6 +27,23 @@ public class MyFreeCamsConfigUI extends AbstractConfigUI { public Parent createConfigPanel() { int row = 0; GridPane layout = SettingsTab.createGridLayout(); + Settings settings = Config.getInstance().getSettings(); + + Label l = new Label("Active"); + layout.add(l, 0, row); + CheckBox enabled = new CheckBox(); + enabled.setSelected(!settings.disabledSites.contains(myFreeCams.getName())); + enabled.setOnAction((e) -> { + if(enabled.isSelected()) { + settings.disabledSites.remove(myFreeCams.getName()); + } else { + settings.disabledSites.add(myFreeCams.getName()); + } + save(); + }); + GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + layout.add(enabled, 1, row++); + layout.add(new Label("MyFreeCams User"), 0, row); TextField username = new TextField(Config.getInstance().getSettings().mfcUsername); username.setPrefWidth(300);