set stored window size to initial window size

This commit is contained in:
Martin Beyer
2021-08-24 16:23:46 +02:00
parent 396b541cd2
commit 4223d15c08
2 changed files with 50 additions and 25 deletions

View File

@@ -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;
}

View File

@@ -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());
}
}