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 a4e68be3b..a1475e2c6 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 @@ -10,6 +10,9 @@ import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.scene.Scene; import javafx.scene.image.Image; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.StageStyle; @@ -76,43 +79,73 @@ public abstract class AddVaultModule { @Provides @FxmlScene(FxmlFile.ADDVAULT_WELCOME) @AddVaultWizardScoped - static Scene provideWelcomeScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/addvault_welcome.fxml"); + static Scene provideWelcomeScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders, @AddVaultWizard Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/addvault_welcome.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } @Provides @FxmlScene(FxmlFile.ADDVAULT_EXISTING) @AddVaultWizardScoped - static Scene provideChooseExistingVaultScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/addvault_existing.fxml"); + static Scene provideChooseExistingVaultScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders, @AddVaultWizard Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/addvault_existing.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } @Provides @FxmlScene(FxmlFile.ADDVAULT_NEW_NAME) @AddVaultWizardScoped - static Scene provideCreateNewVaultNameScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/addvault_new_name.fxml"); + static Scene provideCreateNewVaultNameScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders, @AddVaultWizard Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/addvault_new_name.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } @Provides @FxmlScene(FxmlFile.ADDVAULT_NEW_LOCATION) @AddVaultWizardScoped - static Scene provideCreateNewVaultLocationScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/addvault_new_location.fxml"); + static Scene provideCreateNewVaultLocationScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders, @AddVaultWizard Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/addvault_new_location.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } @Provides @FxmlScene(FxmlFile.ADDVAULT_NEW_PASSWORD) @AddVaultWizardScoped - static Scene provideCreateNewVaultPasswordScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/addvault_new_password.fxml"); + static Scene provideCreateNewVaultPasswordScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders, @AddVaultWizard Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/addvault_new_password.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } @Provides @FxmlScene(FxmlFile.ADDVAULT_SUCCESS) @AddVaultWizardScoped - static Scene provideCreateNewVaultSuccessScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/addvault_success.fxml"); + static Scene provideCreateNewVaultSuccessScene(@AddVaultWizard FXMLLoaderFactory fxmlLoaders, @AddVaultWizard Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/addvault_success.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } // ------------------ diff --git a/main/ui/src/main/java/org/cryptomator/ui/quit/QuitModule.java b/main/ui/src/main/java/org/cryptomator/ui/quit/QuitModule.java index 43b89ac54..5142d13c1 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/quit/QuitModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/quit/QuitModule.java @@ -6,6 +6,9 @@ import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; import javafx.scene.image.Image; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Modality; import javafx.stage.Stage; import org.cryptomator.ui.common.FXMLLoaderFactory; @@ -13,7 +16,6 @@ import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.common.FxControllerKey; import org.cryptomator.ui.common.FxmlFile; import org.cryptomator.ui.common.FxmlScene; -import org.cryptomator.ui.unlock.UnlockController; import javax.inject.Named; import javax.inject.Provider; @@ -46,8 +48,13 @@ abstract class QuitModule { @Provides @FxmlScene(FxmlFile.QUIT) @QuitScoped - static Scene provideUnlockScene(@QuitWindow FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/quit.fxml"); + static Scene provideUnlockScene(@QuitWindow FXMLLoaderFactory fxmlLoaders, @QuitWindow Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/quit.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } // ------------------ diff --git a/main/ui/src/main/java/org/cryptomator/ui/removevault/RemoveVaultModule.java b/main/ui/src/main/java/org/cryptomator/ui/removevault/RemoveVaultModule.java index 5195c275c..72b0c415d 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/removevault/RemoveVaultModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/removevault/RemoveVaultModule.java @@ -6,6 +6,9 @@ import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; import javafx.scene.image.Image; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Modality; import javafx.stage.Stage; import org.cryptomator.ui.common.FXMLLoaderFactory; @@ -45,8 +48,13 @@ abstract class RemoveVaultModule { @Provides @FxmlScene(FxmlFile.REMOVE_VAULT) @RemoveVaultScoped - static Scene provideRemoveVaultScene(@RemoveVault FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/remove_vault.fxml"); + static Scene provideRemoveVaultScene(@RemoveVault FXMLLoaderFactory fxmlLoaders, @RemoveVault Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/remove_vault.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } // ------------------ diff --git a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java index 12673d03b..7bca6c4e4 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java @@ -6,6 +6,9 @@ import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; import javafx.scene.image.Image; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Modality; import javafx.stage.Stage; import org.cryptomator.ui.common.FXMLLoaderFactory; @@ -45,15 +48,25 @@ abstract class UnlockModule { @Provides @FxmlScene(FxmlFile.UNLOCK) @UnlockScoped - static Scene provideUnlockScene(@UnlockWindow FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/unlock2.fxml"); // TODO rename fxml file + static Scene provideUnlockScene(@UnlockWindow FXMLLoaderFactory fxmlLoaders, @UnlockWindow Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/unlock2.fxml"); // TODO rename fxml file + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } @Provides @FxmlScene(FxmlFile.UNLOCK_SUCCESS) @UnlockScoped - static Scene provideUnlockSuccessScene(@UnlockWindow FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/unlock_success.fxml"); + static Scene provideUnlockSuccessScene(@UnlockWindow FXMLLoaderFactory fxmlLoaders, @UnlockWindow Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/unlock_success.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } diff --git a/main/ui/src/main/java/org/cryptomator/ui/wrongfilealert/WrongFileAlertModule.java b/main/ui/src/main/java/org/cryptomator/ui/wrongfilealert/WrongFileAlertModule.java index d90e83fa4..fbfb4872f 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/wrongfilealert/WrongFileAlertModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/wrongfilealert/WrongFileAlertModule.java @@ -6,6 +6,9 @@ import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; import javafx.scene.image.Image; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Modality; import javafx.stage.Stage; import org.cryptomator.ui.common.FXMLLoaderFactory; @@ -45,8 +48,13 @@ abstract class WrongFileAlertModule { @Provides @FxmlScene(FxmlFile.WRONGFILEALERT) @WrongFileAlertScoped - static Scene provideWrongFileAlertScene(@WrongFileAlert FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/wrongfilealert.fxml"); // TODO rename fxml file + static Scene provideWrongFileAlertScene(@WrongFileAlert FXMLLoaderFactory fxmlLoaders, @WrongFileAlert Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/wrongfilealert.fxml"); // TODO rename fxml file + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } // ------------------