From b6a6ec5e3ab7c31594478062ed20ffe5fac4b29a Mon Sep 17 00:00:00 2001 From: Nathan McRae Date: Mon, 26 May 2025 21:41:01 -0700 Subject: [PATCH] Add setting reinitialization if loading fails --- .../numbersstation/MainController.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/name/nathanmcrae/numbersstation/MainController.java b/src/main/java/name/nathanmcrae/numbersstation/MainController.java index 2fe9beb..f5c6b2d 100644 --- a/src/main/java/name/nathanmcrae/numbersstation/MainController.java +++ b/src/main/java/name/nathanmcrae/numbersstation/MainController.java @@ -185,18 +185,24 @@ public class MainController implements Initializable { Result result = MainSettings.load(); if (!result.hasSuccess()) { - // TODO: on failure, prompt user to re-initialize settings - Alert alert = new Alert(Alert.AlertType.ERROR); + Alert alert = new Alert(Alert.AlertType.ERROR, "Unable to load settings file. See log for details. Reinitialize settings? This may overwrite existing settings.", ButtonType.YES, ButtonType.NO); alert.setTitle("Settings load error"); alert.setHeaderText(null); - alert.setContentText("Unable to load settings file"); - alert.showAndWait(); + Optional promptResult = alert.showAndWait(); - return; + if (!promptResult.isPresent()) { + System.exit(1); + } + + if (promptResult.get() == ButtonType.NO) { + System.exit(1); + } + + settings = new MainSettings(); + } else { + settings = result.getSuccess().get(); } - settings = result.getSuccess().get(); - selectedStationName.set(settings.getSelectedStationName()); if (selectedStationName.get() == null || selectedStationName.get() == "") {