diff --git a/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java b/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java index 4061f934f..4e5143d8c 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java @@ -193,8 +193,8 @@ public abstract class AddVaultModule { @Provides @IntoMap @FxControllerKey(RecoveryKeyDisplayController.class) - static FxController provideRecoveryKeyDisplayController(@AddVaultWizardWindow Stage window, @Named("vaultName") StringProperty vaultName, @Named("recoveryKey") StringProperty recoveryKey) { - return new RecoveryKeyDisplayController(window, vaultName.get(), recoveryKey.get()); + static FxController provideRecoveryKeyDisplayController(@AddVaultWizardWindow Stage window, @Named("vaultName") StringProperty vaultName, @Named("recoveryKey") StringProperty recoveryKey, ResourceBundle localization) { + return new RecoveryKeyDisplayController(window, vaultName.get(), recoveryKey.get(), localization); } @Binds diff --git a/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyDisplayController.java b/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyDisplayController.java index 2b61ddf85..19b32add2 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyDisplayController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyDisplayController.java @@ -4,6 +4,7 @@ import javafx.fxml.FXML; import javafx.print.PageLayout; import javafx.print.Printer; import javafx.print.PrinterJob; +import javafx.scene.control.Button; import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; import javafx.scene.text.Font; @@ -16,6 +17,8 @@ import org.cryptomator.ui.common.FxController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ResourceBundle; + public class RecoveryKeyDisplayController implements FxController { private static final Logger LOG = LoggerFactory.getLogger(RecoveryKeyDisplayController.class); @@ -23,11 +26,14 @@ public class RecoveryKeyDisplayController implements FxController { private final Stage window; private final String vaultName; private final String recoveryKey; - - public RecoveryKeyDisplayController(Stage window, String vaultName, String recoveryKey) { + private final ResourceBundle localization; + public Button copyButton; + + public RecoveryKeyDisplayController(Stage window, String vaultName, String recoveryKey, ResourceBundle localization) { this.window = window; this.vaultName = vaultName; this.recoveryKey = recoveryKey; + this.localization = localization; } @FXML @@ -68,6 +74,8 @@ public class RecoveryKeyDisplayController implements FxController { clipboardContent.putString(recoveryKey); Clipboard.getSystemClipboard().setContent(clipboardContent); LOG.info("Recovery key copied to clipboard."); + + copyButton.setText(localization.getString("generic.button.copied")); } @FXML diff --git a/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyModule.java b/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyModule.java index ffa87b2ca..3926f14ae 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/recoverykey/RecoveryKeyModule.java @@ -106,8 +106,8 @@ abstract class RecoveryKeyModule { @Provides @IntoMap @FxControllerKey(RecoveryKeyDisplayController.class) - static FxController provideRecoveryKeyDisplayController(@RecoveryKeyWindow Stage window, @RecoveryKeyWindow Vault vault, @RecoveryKeyWindow StringProperty recoveryKey) { - return new RecoveryKeyDisplayController(window, vault.getDisplayableName(), recoveryKey.get()); + static FxController provideRecoveryKeyDisplayController(@RecoveryKeyWindow Stage window, @RecoveryKeyWindow Vault vault, @RecoveryKeyWindow StringProperty recoveryKey, ResourceBundle localization) { + return new RecoveryKeyDisplayController(window, vault.getDisplayableName(), recoveryKey.get(), localization); } @Binds diff --git a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/GeneralVaultOptionsController.java b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/GeneralVaultOptionsController.java index d89196db3..2507997c9 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/GeneralVaultOptionsController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/GeneralVaultOptionsController.java @@ -2,11 +2,8 @@ package org.cryptomator.ui.vaultoptions; import javafx.fxml.FXML; import javafx.scene.control.CheckBox; -import javafx.stage.Stage; import org.cryptomator.common.vaults.Vault; -import org.cryptomator.ui.changepassword.ChangePasswordComponent; import org.cryptomator.ui.common.FxController; -import org.cryptomator.ui.recoverykey.RecoveryKeyComponent; import javax.inject.Inject; @@ -14,36 +11,15 @@ import javax.inject.Inject; public class GeneralVaultOptionsController implements FxController { private final Vault vault; - private final Stage window; - private final ChangePasswordComponent.Builder changePasswordWindow; - private final RecoveryKeyComponent.Builder recoveryKeyWindow; public CheckBox unlockOnStartupCheckbox; @Inject - GeneralVaultOptionsController(@VaultOptionsWindow Vault vault, @VaultOptionsWindow Stage window, ChangePasswordComponent.Builder changePasswordWindow, RecoveryKeyComponent.Builder recoveryKeyWindow) { + GeneralVaultOptionsController(@VaultOptionsWindow Vault vault) { this.vault = vault; - this.window = window; - this.changePasswordWindow = changePasswordWindow; - this.recoveryKeyWindow = recoveryKeyWindow; } - + @FXML public void initialize() { unlockOnStartupCheckbox.selectedProperty().bindBidirectional(vault.getVaultSettings().unlockAfterStartup()); } - - @FXML - public void changePassword() { - changePasswordWindow.vault(vault).owner(window).build().showChangePasswordWindow(); - } - - @FXML - public void showRecoveryKey() { - recoveryKeyWindow.vault(vault).owner(window).build().showRecoveryKeyCreationWindow(); - } - - @FXML - public void showRecoverVaultDialogue(){ - recoveryKeyWindow.vault(vault).owner(window).build().showRecoveryKeyRecoverWindow(); - } } diff --git a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java new file mode 100644 index 000000000..d03ac4e31 --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java @@ -0,0 +1,42 @@ +package org.cryptomator.ui.vaultoptions; + +import javafx.fxml.FXML; +import javafx.stage.Stage; +import org.cryptomator.common.vaults.Vault; +import org.cryptomator.ui.changepassword.ChangePasswordComponent; +import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.recoverykey.RecoveryKeyComponent; + +import javax.inject.Inject; + +@VaultOptionsScoped +public class MasterkeyOptionsController implements FxController { + + private final Vault vault; + private final Stage window; + private final ChangePasswordComponent.Builder changePasswordWindow; + private final RecoveryKeyComponent.Builder recoveryKeyWindow; + + @Inject + MasterkeyOptionsController(@VaultOptionsWindow Vault vault, @VaultOptionsWindow Stage window, ChangePasswordComponent.Builder changePasswordWindow, RecoveryKeyComponent.Builder recoveryKeyWindow) { + this.vault = vault; + this.window = window; + this.changePasswordWindow = changePasswordWindow; + this.recoveryKeyWindow = recoveryKeyWindow; + } + + @FXML + public void changePassword() { + changePasswordWindow.vault(vault).owner(window).build().showChangePasswordWindow(); + } + + @FXML + public void showRecoveryKey() { + recoveryKeyWindow.vault(vault).owner(window).build().showRecoveryKeyCreationWindow(); + } + + @FXML + public void showRecoverVaultDialogue() { + recoveryKeyWindow.vault(vault).owner(window).build().showRecoveryKeyRecoverWindow(); + } +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsModule.java b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsModule.java index 143546525..639f5b36b 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsModule.java @@ -41,7 +41,9 @@ abstract class VaultOptionsModule { static Stage provideStage(@MainWindow Stage owner, @VaultOptionsWindow Vault vault, ResourceBundle resourceBundle, @Named("windowIcons") List windowIcons) { Stage stage = new Stage(); stage.setTitle(vault.getDisplayableName()); - stage.setResizable(false); + stage.setResizable(true); + stage.setMinWidth(400); + stage.setMinHeight(300); stage.initModality(Modality.WINDOW_MODAL); stage.initOwner(owner); stage.getIcons().addAll(windowIcons); @@ -72,4 +74,9 @@ abstract class VaultOptionsModule { @FxControllerKey(MountOptionsController.class) abstract FxController bindMountOptionsController(MountOptionsController controller); + @Binds + @IntoMap + @FxControllerKey(MasterkeyOptionsController.class) + abstract FxController bindMasterkeyOptionsController(MasterkeyOptionsController controller); + } diff --git a/main/ui/src/main/resources/fxml/changepassword.fxml b/main/ui/src/main/resources/fxml/changepassword.fxml index 3002fbfa9..07fe7cbc4 100644 --- a/main/ui/src/main/resources/fxml/changepassword.fxml +++ b/main/ui/src/main/resources/fxml/changepassword.fxml @@ -4,14 +4,10 @@ - - - - -