diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java index 3cbcfff32..8a93b28fa 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java @@ -5,16 +5,14 @@ import javafx.fxml.FXML; import javafx.scene.layout.HBox; import javafx.scene.layout.Region; import javafx.stage.Stage; -import javafx.util.Duration; -import org.cryptomator.ui.fxapp.FxApplication; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.fxapp.FxApplication; import org.cryptomator.ui.fxapp.UpdateChecker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Named; -import java.util.concurrent.CountDownLatch; @MainWindowScoped public class MainWindowController implements FxController { diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java index 2660662ea..d713f9777 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java @@ -5,6 +5,9 @@ import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Stage; import javafx.stage.StageStyle; import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; @@ -46,8 +49,16 @@ abstract class MainWindowModule { @Provides @FxmlScene(FxmlFile.MAIN_WINDOW) @MainWindowScoped - static Scene provideMainScene(@MainWindow FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/main_window.fxml"); + static Scene provideMainScene(@MainWindow FXMLLoaderFactory fxmlLoaders, MainWindowController mainWindowController, VaultListController vaultListController) { + Scene scene = fxmlLoaders.createScene("/fxml/main_window.fxml"); + + // still not perfect... cant't we have a global menubar via the AWT tray app? + KeyCombination cmdN = new KeyCodeCombination(KeyCode.N, KeyCombination.SHORTCUT_DOWN); + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdN, vaultListController::didClickAddVault); + scene.getAccelerators().put(cmdW, mainWindowController::close); + + return scene; } // ------------------ diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java index 56d563530..e63505e4b 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java @@ -4,9 +4,6 @@ import javafx.beans.binding.BooleanBinding; import javafx.fxml.FXML; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; -import javafx.scene.input.KeyCode; -import javafx.scene.input.KeyCodeCombination; -import javafx.scene.input.KeyCombination; import javafx.stage.Stage; import javafx.stage.WindowEvent; import org.cryptomator.ui.common.FxController; @@ -34,13 +31,10 @@ public class PreferencesController implements FxController { window.setOnShowing(this::windowWillAppear); } - private void windowWillAppear(WindowEvent windowEvent) { + private void windowWillAppear(@SuppressWarnings("unused") WindowEvent windowEvent) { if (updateAvailable.get()) { tabPane.getSelectionModel().select(updatesTab); } - - KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); - window.getScene().getAccelerators().put(cmdW, window::close); } } diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesModule.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesModule.java index 8aa14d109..1fe917684 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesModule.java @@ -5,6 +5,9 @@ import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Stage; import org.cryptomator.ui.common.FXMLLoaderFactory; import org.cryptomator.ui.common.FxController; @@ -40,8 +43,13 @@ abstract class PreferencesModule { @Provides @FxmlScene(FxmlFile.PREFERENCES) @PreferencesScoped - static Scene providePreferencesScene(@PreferencesWindow FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/preferences.fxml"); + static Scene providePreferencesScene(@PreferencesWindow FXMLLoaderFactory fxmlLoaders, @PreferencesWindow Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/preferences.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/vaultoptions/VaultOptionsController.java b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java index bea97f7cb..ab71d08b7 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java @@ -1,11 +1,5 @@ package org.cryptomator.ui.vaultoptions; -import javafx.fxml.FXML; -import javafx.scene.input.KeyCode; -import javafx.scene.input.KeyCodeCombination; -import javafx.scene.input.KeyCombination; -import javafx.stage.Stage; -import javafx.stage.WindowEvent; import org.cryptomator.ui.common.FxController; import javax.inject.Inject; @@ -13,21 +7,7 @@ import javax.inject.Inject; @VaultOptionsScoped public class VaultOptionsController implements FxController { - private final Stage window; - @Inject - VaultOptionsController(@VaultOptionsWindow Stage window) { - this.window = window; - } - - @FXML - public void initialize() { - window.setOnShowing(this::windowWillAppear); - } - - private void windowWillAppear(WindowEvent windowEvent) { - KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); - window.getScene().getAccelerators().put(cmdW, window::close); - } + VaultOptionsController() {} } 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 1cc869437..aa6d42ae2 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 @@ -5,6 +5,9 @@ import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; import javafx.scene.Scene; +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; @@ -48,8 +51,13 @@ abstract class VaultOptionsModule { @Provides @FxmlScene(FxmlFile.VAULT_OPTIONS) @VaultOptionsScoped - static Scene provideVaultOptionsScene(@VaultOptionsWindow FXMLLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene("/fxml/vault_options.fxml"); + static Scene provideVaultOptionsScene(@VaultOptionsWindow FXMLLoaderFactory fxmlLoaders, @VaultOptionsWindow Stage window) { + Scene scene = fxmlLoaders.createScene("/fxml/vault_options.fxml"); + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + scene.getAccelerators().put(cmdW, window::close); + + return scene; } // ------------------