diff --git a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuController.java b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuController.java index 3f2b87c85..bef3c441c 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayMenuController.java @@ -116,6 +116,11 @@ class TrayMenuController { } menu.addSeparator(); + MenuItem lockAllItem = new MenuItem(resourceBundle.getString("traymenu.lockAllVaults")); + lockAllItem.addActionListener(this::lockAllVaults); + lockAllItem.setEnabled(!vaults.filtered(Vault::isUnlocked).isEmpty()); + menu.add(lockAllItem); + MenuItem quitApplicationItem = new MenuItem(resourceBundle.getString("traymenu.quitApplication")); quitApplicationItem.addActionListener(this::quitApplication); menu.add(quitApplicationItem); @@ -153,6 +158,10 @@ class TrayMenuController { fxApplicationStarter.get(true).thenAccept(app -> app.getVaultService().lock(vault, false)); } + private void lockAllVaults(ActionEvent actionEvent) { + fxApplicationStarter.get(true).thenAccept(app -> app.getVaultService().lockAll(vaults.filtered(Vault::isUnlocked), false)); + } + private void revealVault(Vault vault) { fxApplicationStarter.get(true).thenAccept(app -> app.getVaultService().reveal(vault)); } diff --git a/main/ui/src/main/resources/i18n/strings.properties b/main/ui/src/main/resources/i18n/strings.properties index 63240a956..f73b78dc8 100644 --- a/main/ui/src/main/resources/i18n/strings.properties +++ b/main/ui/src/main/resources/i18n/strings.properties @@ -18,6 +18,7 @@ generic.error.instruction=This should not have happened. Please report the error # Tray Menu traymenu.showMainWindow=Show traymenu.showPreferencesWindow=Preferences +traymenu.lockAllVaults=Lock All traymenu.quitApplication=Quit traymenu.vault.unlock=Unlock traymenu.vault.lock=Lock