diff --git a/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordModule.java b/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordModule.java index 4f8ef2a02..f51c3a7ac 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordModule.java @@ -13,6 +13,7 @@ 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.vaultoptions.VaultOptionsWindow; import javax.inject.Named; import javax.inject.Provider; @@ -33,11 +34,12 @@ abstract class ChangePasswordModule { @Provides @ChangePasswordWindow @ChangePasswordScoped - static Stage provideStage(ResourceBundle resourceBundle, @Named("windowIcon") Optional windowIcon) { + static Stage provideStage(@VaultOptionsWindow Stage owner, ResourceBundle resourceBundle, @Named("windowIcon") Optional windowIcon) { Stage stage = new Stage(); stage.setTitle(resourceBundle.getString("changepassword.title")); stage.setResizable(false); - stage.initModality(Modality.APPLICATION_MODAL); + stage.initModality(Modality.WINDOW_MODAL); + stage.initOwner(owner); windowIcon.ifPresent(stage.getIcons()::add); return stage; } 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 72441f0cf..89c73eb27 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 @@ -12,7 +12,6 @@ import javafx.scene.input.KeyCombination; import javafx.stage.Stage; import javafx.stage.StageStyle; import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; -import org.cryptomator.ui.changepassword.ChangePasswordComponent; import org.cryptomator.ui.common.FXMLLoaderFactory; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.common.FxControllerKey; @@ -27,7 +26,7 @@ import java.util.Map; import java.util.Optional; import java.util.ResourceBundle; -@Module(subcomponents = {AddVaultWizardComponent.class, RemoveVaultComponent.class, VaultOptionsComponent.class, ChangePasswordComponent.class}) +@Module(subcomponents = {AddVaultWizardComponent.class, RemoveVaultComponent.class, VaultOptionsComponent.class}) abstract class MainWindowModule { @Provides diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java index 871b696a2..cb0b65882 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java @@ -9,7 +9,6 @@ import javafx.fxml.FXML; import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultState; import org.cryptomator.common.vaults.Volume; -import org.cryptomator.ui.changepassword.ChangePasswordComponent; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.common.Tasks; import org.cryptomator.ui.controls.FontAwesome5Icon; @@ -33,16 +32,14 @@ public class VaultDetailController implements FxController { private final ExecutorService executor; private final FxApplication application; private final VaultOptionsComponent.Builder vaultOptionsWindow; - private final ChangePasswordComponent.Builder changePasswordWindow; @Inject - VaultDetailController(ObjectProperty vault, ExecutorService executor, FxApplication application, VaultOptionsComponent.Builder vaultOptionsWindow, ChangePasswordComponent.Builder changePasswordWindow) { + VaultDetailController(ObjectProperty vault, ExecutorService executor, FxApplication application, VaultOptionsComponent.Builder vaultOptionsWindow) { this.vault = vault; this.glyph = EasyBind.select(vault).selectObject(Vault::stateProperty).map(this::getGlyphForVaultState).orElse(FontAwesome5Icon.EXCLAMATION_TRIANGLE); this.executor = executor; this.application = application; this.vaultOptionsWindow = vaultOptionsWindow; - this.changePasswordWindow = changePasswordWindow; this.anyVaultSelected = vault.isNotNull(); } @@ -84,11 +81,6 @@ public class VaultDetailController implements FxController { vaultOptionsWindow.vault(vault.get()).build().showVaultOptionsWindow(); } - @FXML - public void changePassword() { - changePasswordWindow.vault(vault.get()).build().showChangePasswordWindow(); - } - @FXML public void revealStorageLocation(ActionEvent actionEvent) { application.getHostServices().showDocument(vault.get().getPath().toUri().toString()); 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 499058de7..9f02bc217 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 @@ -12,6 +12,7 @@ import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.StageStyle; import org.cryptomator.common.vaults.Vault; +import org.cryptomator.ui.changepassword.ChangePasswordComponent; import org.cryptomator.ui.common.FXMLLoaderFactory; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.common.FxControllerKey; @@ -23,7 +24,7 @@ import javax.inject.Provider; import java.util.Map; import java.util.ResourceBundle; -@Module +@Module(subcomponents = {ChangePasswordComponent.class}) abstract class VaultOptionsModule { @Provides