From 0091c401df3589e9e4236698690d242af77ffc1e Mon Sep 17 00:00:00 2001 From: Martin Beyer Date: Wed, 22 Jul 2020 15:26:21 +0200 Subject: [PATCH] Fixes #1267 by binding the settings.preferredVolumeImpl to VolumeImpl.WEBDAV, if preferredVolimeImpl isn't available --- .../ui/preferences/VolumePreferencesController.java | 13 +++++++++---- .../src/main/resources/fxml/preferences_volume.fxml | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java index 9dd1bef82..44127696c 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java @@ -3,6 +3,7 @@ package org.cryptomator.ui.preferences; import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleObjectProperty; import javafx.scene.control.Button; import javafx.scene.control.ChoiceBox; import javafx.scene.control.TextField; @@ -25,7 +26,7 @@ public class VolumePreferencesController implements FxController { private final Settings settings; private final BooleanBinding showWebDavSettings; private final BooleanBinding showWebDavScheme; - public ChoiceBox volumeTypeChoicBox; + public ChoiceBox volumeTypeChoiceBox; public TextField webDavPortField; public Button changeWebDavPortButton; public ChoiceBox webDavUrlSchemeChoiceBox; @@ -38,9 +39,13 @@ public class VolumePreferencesController implements FxController { } public void initialize() { - volumeTypeChoicBox.getItems().addAll(Volume.getCurrentSupportedAdapters()); - volumeTypeChoicBox.valueProperty().bindBidirectional(settings.preferredVolumeImpl()); - volumeTypeChoicBox.setConverter(new VolumeImplConverter()); + volumeTypeChoiceBox.getItems().addAll(Volume.getCurrentSupportedAdapters()); + //If the in the settings specified preferredVolumeImplementation isn't available, overwrite the settings to use the default VolumeImpl.WEBDAV + if (!volumeTypeChoiceBox.getItems().contains(settings.preferredVolumeImpl().get())) { + settings.preferredVolumeImpl().bind(new SimpleObjectProperty<>(VolumeImpl.WEBDAV)); + } + volumeTypeChoiceBox.valueProperty().bindBidirectional(settings.preferredVolumeImpl()); + volumeTypeChoiceBox.setConverter(new VolumeImplConverter()); webDavPortField.setText(String.valueOf(settings.port().get())); changeWebDavPortButton.visibleProperty().bind(settings.port().asString().isNotEqualTo(webDavPortField.textProperty())); diff --git a/main/ui/src/main/resources/fxml/preferences_volume.fxml b/main/ui/src/main/resources/fxml/preferences_volume.fxml index 43704e00f..1ac27fd85 100644 --- a/main/ui/src/main/resources/fxml/preferences_volume.fxml +++ b/main/ui/src/main/resources/fxml/preferences_volume.fxml @@ -17,7 +17,7 @@