diff --git a/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java b/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java index 7334b69da..e3d3c30d9 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java +++ b/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java @@ -11,6 +11,7 @@ public enum FontAwesome5Icon { COGS("\uF085"), // COPY("\uF0C5"), // CROWN("\uF521"), // + EDIT("\uF044"), // EXCLAMATION("\uF12A"), // EXCLAMATION_CIRCLE("\uF06A"), // EXCLAMATION_TRIANGLE("\uF071"), // @@ -37,6 +38,7 @@ public enum FontAwesome5Icon { SPINNER("\uF110"), // SYNC("\uF021"), // TIMES("\uF00D"), // + TRASH("\uF1F8"), // UNLINK("\uf127"), // WRENCH("\uF0AD"), // WINDOW_MINIMIZE("\uF2D1"), // diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java index f54bc447b..095743490 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java @@ -1,26 +1,55 @@ package org.cryptomator.ui.mainwindow; import javafx.beans.property.ObjectProperty; -import javafx.beans.property.ReadOnlyObjectProperty; import javafx.fxml.FXML; +import javafx.stage.FileChooser; +import javafx.stage.Stage; import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.removevault.RemoveVaultComponent; import javax.inject.Inject; +import java.io.File; +import java.util.ResourceBundle; @MainWindowScoped public class VaultDetailMissingVaultController implements FxController { - private final ReadOnlyObjectProperty vault; + private final ObjectProperty vault; + private final RemoveVaultComponent.Builder removeVault; + private final ResourceBundle resourceBundle; + private final Stage window; + @Inject - public VaultDetailMissingVaultController(ObjectProperty vault) { + public VaultDetailMissingVaultController(ObjectProperty vault, RemoveVaultComponent.Builder removeVault, ResourceBundle resourceBundle, @MainWindow Stage window) { this.vault = vault; + this.removeVault = removeVault; + this.resourceBundle = resourceBundle; + this.window = window; } @FXML public void recheck() { VaultListManager.redetermineVaultState(vault.get()); } + + @FXML + void didClickRemoveVault() { + removeVault.vault(vault.get()).build().showRemoveVault(); + } + + @FXML + void changeLocation() { + // copied from ChooseExistingVaultController class + FileChooser fileChooser = new FileChooser(); + fileChooser.setTitle(resourceBundle.getString("addvaultwizard.existing.filePickerTitle")); + fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Cryptomator Masterkey", "*.cryptomator")); + File masterkeyFile = fileChooser.showOpenDialog(window); + if (masterkeyFile != null) { + vault.get().getVaultSettings().path().setValue(masterkeyFile.toPath().toAbsolutePath().getParent()); + recheck(); + } + } } diff --git a/main/ui/src/main/resources/fxml/vault_detail_missing.fxml b/main/ui/src/main/resources/fxml/vault_detail_missing.fxml index 367aa4479..63bb3d6dd 100644 --- a/main/ui/src/main/resources/fxml/vault_detail_missing.fxml +++ b/main/ui/src/main/resources/fxml/vault_detail_missing.fxml @@ -26,5 +26,16 @@ + + + \ No newline at end of file diff --git a/main/ui/src/main/resources/i18n/strings.properties b/main/ui/src/main/resources/i18n/strings.properties index 858adee2b..cd6a2d625 100644 --- a/main/ui/src/main/resources/i18n/strings.properties +++ b/main/ui/src/main/resources/i18n/strings.properties @@ -194,6 +194,8 @@ main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator could not find a vault at this path. main.vaultDetail.missing.recheck=Recheck +main.vaultDetail.missing.remove=Remove from Vault List +main.vaultDetail.missing.changeLocation=Change Vault Location… ### Needs Migration main.vaultDetail.migrateButton=Upgrade Vault main.vaultDetail.migratePrompt=Your vault needs to be upgraded to a new format, before you can access it