From 4223d15c0896fff11d9b5ec62dc5c584f6bf26ac Mon Sep 17 00:00:00 2001 From: Martin Beyer Date: Tue, 24 Aug 2021 16:23:46 +0200 Subject: [PATCH] set stored window size to initial window size --- .../ui/mainwindow/MainWindowModule.java | 39 ++++++++++--------- .../ui/mainwindow/ResizeController.java | 36 ++++++++++++++--- 2 files changed, 50 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java index 90311bd5b..d1128664e 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java @@ -4,27 +4,28 @@ import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; -import org.cryptomator.common.vaults.Vault; -import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; -import org.cryptomator.ui.common.FxmlLoaderFactory; -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.common.StageFactory; -import org.cryptomator.ui.health.HealthCheckComponent; -import org.cryptomator.ui.migration.MigrationComponent; -import org.cryptomator.ui.removevault.RemoveVaultComponent; -import org.cryptomator.ui.vaultoptions.VaultOptionsComponent; -import org.cryptomator.ui.stats.VaultStatisticsComponent; -import org.cryptomator.ui.wrongfilealert.WrongFileAlertComponent; - -import javax.inject.Provider; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.stage.StageStyle; +import org.cryptomator.common.vaults.Vault; +import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; +import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.common.FxControllerKey; +import org.cryptomator.ui.common.FxmlFile; +import org.cryptomator.ui.common.FxmlLoaderFactory; +import org.cryptomator.ui.common.FxmlScene; +import org.cryptomator.ui.common.StageFactory; +import org.cryptomator.ui.health.HealthCheckComponent; +import org.cryptomator.ui.migration.MigrationComponent; +import org.cryptomator.ui.removevault.RemoveVaultComponent; +import org.cryptomator.ui.stats.VaultStatisticsComponent; +import org.cryptomator.ui.vaultoptions.VaultOptionsComponent; +import org.cryptomator.ui.wrongfilealert.WrongFileAlertComponent; + +import javax.inject.Provider; +import java.awt.*; import java.util.Map; import java.util.ResourceBundle; @@ -49,11 +50,11 @@ abstract class MainWindowModule { @MainWindowScoped static Stage provideStage(StageFactory factory) { Stage stage = factory.create(StageStyle.UNDECORATED); - // TODO: min/max values chosen arbitrarily. We might wanna take a look at the user's resolution... + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); stage.setMinWidth(650); stage.setMinHeight(440); - stage.setMaxWidth(1000); - stage.setMaxHeight(700); + stage.setMaxWidth(screenSize.getWidth()); + stage.setMaxHeight(screenSize.getHeight()); stage.setTitle("Cryptomator"); return stage; } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java b/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java index 908944d68..aad74ffc6 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java @@ -1,16 +1,21 @@ package org.cryptomator.ui.mainwindow; -import org.cryptomator.ui.common.FxController; - -import javax.inject.Inject; import javafx.fxml.FXML; import javafx.scene.input.MouseEvent; import javafx.scene.layout.Region; import javafx.stage.Stage; +import org.cryptomator.common.settings.Settings; +import org.cryptomator.ui.common.FxController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.inject.Inject; @MainWindow public class ResizeController implements FxController { + private static final Logger LOG = LoggerFactory.getLogger(ResizeController.class); + private final Stage window; public Region tlResizer; @@ -20,14 +25,17 @@ public class ResizeController implements FxController { private double origX, origY, origW, origH; + private final Settings settings; + @Inject - ResizeController(@MainWindow Stage window) { + ResizeController(@MainWindow Stage window, Settings settings) { this.window = window; - // TODO inject settings and save current position and size + this.settings = settings; } @FXML public void initialize() { + LOG.debug("init ResizeController"); tlResizer.setOnMousePressed(this::startResize); trResizer.setOnMousePressed(this::startResize); blResizer.setOnMousePressed(this::startResize); @@ -36,6 +44,11 @@ public class ResizeController implements FxController { trResizer.setOnMouseDragged(this::resizeTopRight); blResizer.setOnMouseDragged(this::resizeBottomLeft); brResizer.setOnMouseDragged(this::resizeBottomRight); + + window.setY(settings.windowYPositionProperty().get()); + window.setX(settings.windowXPositionProperty().get()); + window.setHeight(settings.windowHeightProperty().get()); + window.setWidth(settings.windowWidthProperty().get()); } private void startResize(MouseEvent evt) { @@ -48,21 +61,25 @@ public class ResizeController implements FxController { private void resizeTopLeft(MouseEvent evt) { resizeTop(evt); resizeLeft(evt); + saveSettings(); } private void resizeTopRight(MouseEvent evt) { resizeTop(evt); resizeRight(evt); + saveSettings(); } private void resizeBottomLeft(MouseEvent evt) { resizeBottom(evt); resizeLeft(evt); + saveSettings(); } private void resizeBottomRight(MouseEvent evt) { resizeBottom(evt); resizeRight(evt); + saveSettings(); } private void resizeTop(MouseEvent evt) { @@ -99,4 +116,11 @@ public class ResizeController implements FxController { } } -} + private void saveSettings() { + settings.windowHeightProperty().setValue(window.getHeight()); + settings.windowWidthProperty().setValue(window.getWidth()); + settings.windowYPositionProperty().setValue(window.getY()); + settings.windowXPositionProperty().setValue(window.getX()); + } + +} \ No newline at end of file