diff --git a/pom.xml b/pom.xml
index bc4b83d15..e7541b6b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
1.2.0
1.2.0
1.2.0
- 2.0.4
+ 2.1.0-SNAPSHOT
2.0.0
2.0.2
diff --git a/src/main/java/org/cryptomator/common/mount/Mounter.java b/src/main/java/org/cryptomator/common/mount/Mounter.java
index 0161268f3..711029df2 100644
--- a/src/main/java/org/cryptomator/common/mount/Mounter.java
+++ b/src/main/java/org/cryptomator/common/mount/Mounter.java
@@ -65,7 +65,13 @@ public class Mounter {
builder.setMountFlags(mountFlags);
}
}
- case VOLUME_ID -> builder.setVolumeId(vaultSettings.getId());
+ case VOLUME_ID -> {
+ if(vaultSettings.usesVaultIdAsVolumeId().get()) {
+ builder.setVolumeId(vaultSettings.getId()+"\\test");
+ } else {
+ builder.setVolumeId(vaultSettings.mountName().get());
+ }
+ }
case VOLUME_NAME -> builder.setVolumeName(vaultSettings.mountName().get());
}
}
diff --git a/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/src/main/java/org/cryptomator/common/settings/VaultSettings.java
index 3a116b4ce..2c880560c 100644
--- a/src/main/java/org/cryptomator/common/settings/VaultSettings.java
+++ b/src/main/java/org/cryptomator/common/settings/VaultSettings.java
@@ -42,6 +42,7 @@ public class VaultSettings {
private final String id;
private final ObjectProperty path = new SimpleObjectProperty<>();
private final StringProperty displayName = new SimpleStringProperty();
+ private final BooleanProperty vaultIdAsVolumeId = new SimpleBooleanProperty(false);
private final BooleanProperty unlockAfterStartup = new SimpleBooleanProperty(DEFAULT_UNLOCK_AFTER_STARTUP);
private final BooleanProperty revealAfterMount = new SimpleBooleanProperty(DEFAULT_REVEAL_AFTER_MOUNT);
private final BooleanProperty usesReadOnlyMode = new SimpleBooleanProperty(DEFAULT_USES_READONLY_MODE);
@@ -127,6 +128,10 @@ public class VaultSettings {
return mountPoint;
}
+ public BooleanProperty usesVaultIdAsVolumeId() {
+ return vaultIdAsVolumeId;
+ }
+
public BooleanProperty usesReadOnlyMode() {
return usesReadOnlyMode;
}
diff --git a/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java b/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java
index 502d4312a..4c262912d 100644
--- a/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java
+++ b/src/main/java/org/cryptomator/ui/vaultoptions/MountOptionsController.java
@@ -40,6 +40,7 @@ public class MountOptionsController implements FxController {
private final ObservableValue defaultMountFlags;
private final ObservableValue mountpointDirSupported;
private final ObservableValue mountpointDriveLetterSupported;
+ private final ObservableValue volumeIdSupported;
private final ObservableValue readOnlySupported;
private final ObservableValue mountFlagsSupported;
private final ObservableValue directoryPath;
@@ -48,6 +49,7 @@ public class MountOptionsController implements FxController {
//-- FXML objects --
public CheckBox readOnlyCheckbox;
+ public CheckBox useVaultIdAsVolumeId;
public CheckBox customMountFlagsCheckbox;
public TextField mountFlagsField;
public ToggleGroup mountPointToggleGroup;
@@ -73,6 +75,7 @@ public class MountOptionsController implements FxController {
this.mountpointDirSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_TO_EXISTING_DIR) || as.service().hasCapability(MountCapability.MOUNT_WITHIN_EXISTING_PARENT));
this.mountpointDriveLetterSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_AS_DRIVE_LETTER));
this.mountFlagsSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_FLAGS));
+ this.volumeIdSupported = mountService.map(as -> as.service().hasCapability(MountCapability.VOLUME_ID));
this.readOnlySupported = mountService.map(as -> as.service().hasCapability(MountCapability.READ_ONLY));
this.directoryPath = vault.getVaultSettings().mountPoint().map(p -> isDriveLetter(p) ? null : p.toString());
this.applicationWindows = applicationWindows;
@@ -83,6 +86,9 @@ public class MountOptionsController implements FxController {
// readonly:
readOnlyCheckbox.selectedProperty().bindBidirectional(vaultSettings.usesReadOnlyMode());
+ // use volume name as volume id
+ useVaultIdAsVolumeId.selectedProperty().bindBidirectional(vaultSettings.usesVaultIdAsVolumeId());
+
// custom mount flags:
mountFlagsField.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not());
customMountFlagsCheckbox.setSelected(!Strings.isNullOrEmpty(vaultSettings.mountFlags().getValue()));
@@ -267,6 +273,16 @@ public class MountOptionsController implements FxController {
return readOnlySupported.getValue();
}
+ public ObservableValue volumeIdSupportedProperty() {
+ return volumeIdSupported;
+ }
+
+ public boolean getVolumeIdSupported() {
+ return volumeIdSupported.getValue();
+ }
+
+
+
public ObservableValue directoryPathProperty() {
return directoryPath;
}
diff --git a/src/main/resources/fxml/vault_options_mount.fxml b/src/main/resources/fxml/vault_options_mount.fxml
index 762d36d27..615f4dd69 100644
--- a/src/main/resources/fxml/vault_options_mount.fxml
+++ b/src/main/resources/fxml/vault_options_mount.fxml
@@ -30,6 +30,7 @@
+