Browse Source

add link to mounting documentation

Armin Schrenk 2 years ago
parent
commit
c19a86a348

+ 11 - 1
src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.preferences;
 
+import dagger.Lazy;
 import org.cryptomator.common.ObservableUtil;
 import org.cryptomator.common.settings.Settings;
 import org.cryptomator.integrations.mount.MountCapability;
@@ -7,6 +8,7 @@ import org.cryptomator.integrations.mount.MountService;
 import org.cryptomator.ui.common.FxController;
 
 import javax.inject.Inject;
+import javafx.application.Application;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanExpression;
 import javafx.beans.value.ObservableValue;
@@ -21,6 +23,8 @@ import java.util.ResourceBundle;
 @PreferencesScoped
 public class VolumePreferencesController implements FxController {
 
+	private static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/en/1.7/desktop/vault-mounting/";
+
 	private final Settings settings;
 	private final ObservableValue<MountService> selectedMountService;
 	private final ResourceBundle resourceBundle;
@@ -29,14 +33,16 @@ public class VolumePreferencesController implements FxController {
 	private final ObservableValue<Boolean> mountToDriveLetterSupported;
 	private final ObservableValue<Boolean> mountFlagsSupported;
 	private final ObservableValue<Boolean> readonlySupported;
+	private final Lazy<Application> application;
 	private final List<MountService> mountProviders;
 	public ChoiceBox<MountService> volumeTypeChoiceBox;
 	public TextField loopbackPortField;
 	public Button loopbackPortApplyButton;
 
 	@Inject
-	VolumePreferencesController(Settings settings, List<MountService> mountProviders, ResourceBundle resourceBundle) {
+	VolumePreferencesController(Settings settings, Lazy<Application> application, List<MountService> mountProviders, ResourceBundle resourceBundle) {
 		this.settings = settings;
+		this.application = application;
 		this.mountProviders = mountProviders;
 		this.resourceBundle = resourceBundle;
 
@@ -141,4 +147,8 @@ public class VolumePreferencesController implements FxController {
 			throw new UnsupportedOperationException();
 		}
 	}
+
+	public void openDocs() {
+		application.get().getHostServices().showDocument(DOCS_MOUNTING_URL);
+	}
 }

+ 12 - 0
src/main/resources/fxml/preferences_volume.fxml

@@ -5,6 +5,7 @@
 <?import javafx.geometry.Insets?>
 <?import javafx.scene.control.Button?>
 <?import javafx.scene.control.ChoiceBox?>
+<?import javafx.scene.control.Hyperlink?>
 <?import javafx.scene.control.Label?>
 <?import javafx.scene.control.Separator?>
 <?import javafx.scene.layout.HBox?>
@@ -58,5 +59,16 @@
 				</graphic>
 			</Label>
 		</VBox>
+
+		<Separator orientation="HORIZONTAL"/>
+
+		<VBox HBox.hgrow="ALWAYS" spacing="6">
+			<Label text="%preferences.volume.docs.description" wrapText="true" VBox.vgrow="ALWAYS"/>
+			<Hyperlink text="%preferences.volume.docs.linkText" onAction="#openDocs" contentDisplay="LEFT">
+				<graphic>
+					<FontAwesome5IconView glyph="LINK"/>
+				</graphic>
+			</Hyperlink>
+		</VBox>
 	</children>
 </VBox>

+ 2 - 0
src/main/resources/i18n/strings.properties

@@ -278,6 +278,8 @@ preferences.interface.showTrayIcon=Show tray icon (requires restart)
 preferences.volume=Virtual Drive
 preferences.volume.type=Volume Type (requires restart)
 preferences.volume.type.automatic=Automatic
+preferences.volume.docs.description=More information about the different volume types can be found in the user documentation.
+preferences.volume.docs.linkText=Open Cryptomator Docs
 preferences.volume.tcp.port=TCP Port
 preferences.volume.supportedFeatures=The chosen volume type supports the following features:
 preferences.volume.feature.mountAuto=Automatic mount point selection