From 9817fdfb422f59ca93be263f7e6d823256cb83a7 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Sun, 25 Nov 2018 21:17:17 +0100 Subject: [PATCH] Add setting for the online check interval --- .../src/main/java/ctbrec/ui/SettingsTab.java | 30 +++++++++++-------- common/src/main/java/ctbrec/Settings.java | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/SettingsTab.java b/client/src/main/java/ctbrec/ui/SettingsTab.java index ce241df8..2752e20f 100644 --- a/client/src/main/java/ctbrec/ui/SettingsTab.java +++ b/client/src/main/java/ctbrec/ui/SettingsTab.java @@ -64,6 +64,7 @@ public class SettingsTab extends Tab implements TabSelectionListener { private TextField postProcessing; private TextField server; private TextField port; + private TextField onlineCheckIntervalInSecs; private CheckBox loadResolution; private CheckBox secureCommunication = new CheckBox(); private CheckBox chooseStreamQuality = new CheckBox(); @@ -214,18 +215,6 @@ public class SettingsTab extends Tab implements TabSelectionListener { saveConfig(); } }); - // port.focusedProperty().addListener((e) -> { - // if(!port.getText().isEmpty()) { - // try { - // Config.getInstance().getSettings().httpPort = Integer.parseInt(port.getText()); - // port.setBorder(Border.EMPTY); - // port.setTooltip(null); - // } catch (NumberFormatException e1) { - // port.setBorder(new Border(new BorderStroke(Color.RED, BorderStrokeStyle.DASHED, new CornerRadii(2), new BorderWidths(2)))); - // port.setTooltip(new Tooltip("Port has to be a number in the range 1 - 65536")); - // } - // } - // }); GridPane.setFillWidth(port, true); GridPane.setHgrow(port, Priority.ALWAYS); GridPane.setColumnSpan(port, 2); @@ -408,6 +397,20 @@ public class SettingsTab extends Tab implements TabSelectionListener { GridPane.setMargin(l, new Insets(0, 0, 0, 0)); GridPane.setMargin(splitAfter, new Insets(0, 0, 0, CHECKBOX_MARGIN)); + layout.add(new Label("Check online state every (secs"), 0, row); + onlineCheckIntervalInSecs = new TextField(Integer.toString(Config.getInstance().getSettings().onlineCheckIntervalInSecs)); + onlineCheckIntervalInSecs.textProperty().addListener((observable, oldValue, newValue) -> { + if (!newValue.matches("\\d*")) { + onlineCheckIntervalInSecs.setText(newValue.replaceAll("[^\\d]", "")); + } + if(!onlineCheckIntervalInSecs.getText().isEmpty()) { + Config.getInstance().getSettings().onlineCheckIntervalInSecs = Integer.parseInt(onlineCheckIntervalInSecs.getText()); + saveConfig(); + } + }); + GridPane.setMargin(onlineCheckIntervalInSecs, new Insets(0, 0, 0, CHECKBOX_MARGIN)); + layout.add(onlineCheckIntervalInSecs, 1, row++); + l = new Label("Start Tab"); layout.add(l, 0, row); startTab = new ComboBox<>(); @@ -426,8 +429,11 @@ public class SettingsTab extends Tab implements TabSelectionListener { GridPane.setMargin(l, new Insets(0, 0, 0, 0)); GridPane.setMargin(colorSettingsPane, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); + splitAfter.prefWidthProperty().bind(startTab.widthProperty()); maxResolution.prefWidthProperty().bind(startTab.widthProperty()); + onlineCheckIntervalInSecs.prefWidthProperty().bind(startTab.widthProperty()); + onlineCheckIntervalInSecs.maxWidthProperty().bind(startTab.widthProperty()); TitledPane general = new TitledPane("General", layout); general.setCollapsible(false); diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index 62003b51..fc114a28 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -74,5 +74,5 @@ public class Settings { public List disabledSites = new ArrayList<>(); public String colorBase = "#FFFFFF"; public String colorAccent = "#FFFFFF"; - public long onlineCheckIntervalInSecs = 60; + public int onlineCheckIntervalInSecs = 60; }