From c4dcbd8c44bc9c12f7d05b8596ec5cf9760235e4 Mon Sep 17 00:00:00 2001 From: Antoine James Tournepiche Date: Thu, 9 Nov 2023 23:42:22 +0100 Subject: [PATCH] Implement requested feature #3155 Toggle selected vault lock status on double click on a vault item in the vault list on the main window --- .../ui/mainwindow/VaultListController.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java index 8f0a91d58..d56410292 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java @@ -7,6 +7,7 @@ import org.cryptomator.cryptofs.CryptoFileSystemProvider; import org.cryptomator.cryptofs.DirStructure; import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.fxapp.FxApplicationWindows; import org.cryptomator.ui.removevault.RemoveVaultComponent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -64,6 +65,7 @@ public class VaultListController implements FxController { private final VaultListManager vaultListManager; private final BooleanProperty draggingVaultOver = new SimpleBooleanProperty(); private final ResourceBundle resourceBundle; + private final FxApplicationWindows appWindows; public ListView vaultList; public StackPane root; @@ -79,7 +81,8 @@ public class VaultListController implements FxController { AddVaultWizardComponent.Builder addVaultWizard, // RemoveVaultComponent.Builder removeVaultDialogue, // VaultListManager vaultListManager, // - ResourceBundle resourceBundle) { + ResourceBundle resourceBundle, // + FxApplicationWindows appWindows) { this.mainWindow = mainWindow; this.vaults = vaults; this.selectedVault = selectedVault; @@ -88,6 +91,7 @@ public class VaultListController implements FxController { this.removeVaultDialogue = removeVaultDialogue; this.vaultListManager = vaultListManager; this.resourceBundle = resourceBundle; + this.appWindows = appWindows; this.emptyVaultList = Bindings.isEmpty(vaults); @@ -108,6 +112,18 @@ public class VaultListController implements FxController { }); vaultList.addEventFilter(MouseEvent.MOUSE_RELEASED, this::deselect); + //toggle selected vault lock status on double click + vaultList.addEventFilter(MouseEvent.MOUSE_CLICKED, click -> { + if (click.getClickCount() >= 2 && selectedVault.get() != null) { + if (selectedVault.get().isLocked()) { + appWindows.startUnlockWorkflow(selectedVault.get(), mainWindow); + } + if (selectedVault.get().isUnlocked()) { + appWindows.startLockWorkflow(selectedVault.get(), mainWindow); + } + } + }); + //don't show context menu when no vault selected vaultList.addEventFilter(ContextMenuEvent.CONTEXT_MENU_REQUESTED, request -> { if (selectedVault.get() == null) {