From bd4c12e9b0e5e921be363dcf90e8c80b782a3821 Mon Sep 17 00:00:00 2001 From: Magnus Lundmark Date: Tue, 5 Jun 2018 15:00:36 +0200 Subject: [PATCH] Added config switch for default window size and whether to start maximized. --- lizzie.sh | 2 +- src/main/java/featurecat/lizzie/Config.java | 7 +++++-- src/main/java/featurecat/lizzie/gui/LizzieFrame.java | 10 +++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lizzie.sh b/lizzie.sh index 01747a508..56f2b2891 100755 --- a/lizzie.sh +++ b/lizzie.sh @@ -1,2 +1,2 @@ -java -jar -Dsun.java2d.opengl=true ./target/lizzie-0.4-shaded.jar 2>/dev/null & +java -jar -Dsun.java2d.opengl=true ./target/lizzie-0.5-shaded.jar 2>/dev/null & diff --git a/src/main/java/featurecat/lizzie/Config.java b/src/main/java/featurecat/lizzie/Config.java index 19398b26d..7e25aa03c 100644 --- a/src/main/java/featurecat/lizzie/Config.java +++ b/src/main/java/featurecat/lizzie/Config.java @@ -23,7 +23,8 @@ public class Config { public boolean showNextMoves = true; public boolean showSubBoard = true; public boolean largeSubBoard = false; - + public boolean startMaximized = true; + public JSONObject config; public JSONObject leelazConfig; public JSONObject uiConfig; @@ -141,6 +142,7 @@ public Config() throws IOException { showSubBoard = uiConfig.getBoolean("show-subboard"); largeSubBoard = uiConfig.getBoolean("large-subboard"); handicapInsteadOfWinrate = uiConfig.getBoolean("handicap-instead-of-winrate"); + startMaximized = uiConfig.getBoolean("window-maximized"); } // Modifies config by adding in values from default_config that are missing. @@ -196,7 +198,6 @@ public boolean showLargeSubBoard() { return showSubBoard && largeSubBoard; } - /** * Scans the current directory as well as the current PATH to find a reasonable default leelaz binary. * @@ -259,6 +260,8 @@ private JSONObject createDefaultConfig() { ui.put("confirm-exit", false); ui.put("handicap-instead-of-winrate",false); ui.put("board-size", 19); + ui.put("window-size", new JSONArray("[0, 0]")); + ui.put("window-maximized", false); config.put("ui", ui); return config; diff --git a/src/main/java/featurecat/lizzie/gui/LizzieFrame.java b/src/main/java/featurecat/lizzie/gui/LizzieFrame.java index fa45ff9de..7dcd9453c 100644 --- a/src/main/java/featurecat/lizzie/gui/LizzieFrame.java +++ b/src/main/java/featurecat/lizzie/gui/LizzieFrame.java @@ -20,6 +20,7 @@ import featurecat.lizzie.rules.GIBParser; import featurecat.lizzie.rules.SGFParser; import org.json.JSONObject; +import org.json.JSONArray; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; @@ -112,11 +113,14 @@ public LizzieFrame() { variationTree = new VariationTree(); winrateGraph = new WinrateGraph(); - // on 1080p screens in Windows, this is a good width/height. removing a default size causes problems in Linux - setSize(657, 687); setMinimumSize( new Dimension(640,480) ); setLocationRelativeTo(null); // start centered - setExtendedState(Frame.MAXIMIZED_BOTH); // start maximized + JSONArray windowSize = Lizzie.config.uiConfig.getJSONArray("window-size"); + setSize(windowSize.getInt(0), windowSize.getInt(1)); // use config file window size + + if (Lizzie.config.startMaximized) { + setExtendedState(Frame.MAXIMIZED_BOTH); // start maximized + } setVisible(true);