diff --git a/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java b/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java index 80cd60cab..7c1532775 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java @@ -43,6 +43,9 @@ public class SettingsController extends LocalizedFXMLViewController { @FXML private TextField portField; + @FXML + private Label useIpv6Label; + @FXML private CheckBox useIpv6Checkbox; @@ -55,7 +58,8 @@ public class SettingsController extends LocalizedFXMLViewController { checkForUpdatesCheckbox.setSelected(settings.isCheckForUpdatesEnabled() && !areUpdatesManagedExternally()); portField.setText(String.valueOf(settings.getPort())); portField.addEventFilter(KeyEvent.KEY_TYPED, this::filterNumericKeyEvents); - useIpv6Checkbox.setDisable(!SystemUtils.IS_OS_WINDOWS); + useIpv6Label.setVisible(SystemUtils.IS_OS_WINDOWS); + useIpv6Checkbox.setVisible(SystemUtils.IS_OS_WINDOWS); useIpv6Checkbox.setSelected(SystemUtils.IS_OS_WINDOWS && settings.shouldUseIpv6()); versionLabel.setText(String.format(localization.getString("settings.version.label"), applicationVersion().orElse("SNAPSHOT"))); @@ -81,7 +85,7 @@ public class SettingsController extends LocalizedFXMLViewController { private void portDidChange(String newValue) { try { int port = Integer.parseInt(newValue); - if (port < Settings.MIN_PORT || port > Settings.MAX_PORT) { + if (!settings.isPortValid(port)) { settings.setPort(Settings.DEFAULT_PORT); } else { settings.setPort(port); diff --git a/main/ui/src/main/java/org/cryptomator/ui/settings/Settings.java b/main/ui/src/main/java/org/cryptomator/ui/settings/Settings.java index 17f7c5b25..6b00aeb41 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/settings/Settings.java +++ b/main/ui/src/main/java/org/cryptomator/ui/settings/Settings.java @@ -93,8 +93,8 @@ public class Settings implements Serializable { } } - private boolean isPortValid(int port) { - return port == DEFAULT_PORT || port >= MIN_PORT && port <= MAX_PORT; + public boolean isPortValid(int port) { + return port == DEFAULT_PORT || port >= MIN_PORT && port <= MAX_PORT || port == 0; } public boolean shouldUseIpv6() { diff --git a/main/ui/src/main/resources/fxml/settings.fxml b/main/ui/src/main/resources/fxml/settings.fxml index eebe54528..73f26630f 100644 --- a/main/ui/src/main/resources/fxml/settings.fxml +++ b/main/ui/src/main/resources/fxml/settings.fxml @@ -38,7 +38,7 @@ -