From ee989b8997d5ab9ebd6a7e64f527d511e6331b2d Mon Sep 17 00:00:00 2001 From: Marvin Elsen Date: Thu, 3 Oct 2024 21:33:07 +0200 Subject: [PATCH] Split preferences dialog into Dialog and Controller --- .../willow/ui/controllers/MenuController.kt | 10 +- .../dialogs/PreferencesDialogController.kt | 108 ++++++++++++++ .../willow/ui/dialogs/PreferencesDialog.kt | 135 ++++-------------- .../resources/fxml/dialogs/preferences.fxml | 5 +- 4 files changed, 142 insertions(+), 116 deletions(-) create mode 100644 src/main/kotlin/com/marvinelsen/willow/ui/controllers/dialogs/PreferencesDialogController.kt diff --git a/src/main/kotlin/com/marvinelsen/willow/ui/controllers/MenuController.kt b/src/main/kotlin/com/marvinelsen/willow/ui/controllers/MenuController.kt index 10851e3..9157b11 100644 --- a/src/main/kotlin/com/marvinelsen/willow/ui/controllers/MenuController.kt +++ b/src/main/kotlin/com/marvinelsen/willow/ui/controllers/MenuController.kt @@ -8,9 +8,13 @@ import javafx.beans.binding.Bindings import javafx.fxml.FXML import javafx.scene.control.MenuBar import javafx.scene.control.MenuItem +import java.util.ResourceBundle @Suppress("UnusedPrivateMember") class MenuController(private val model: Model, private val config: Config) { + @FXML + private lateinit var resources: ResourceBundle + @FXML private lateinit var menuBar: MenuBar @@ -28,10 +32,10 @@ class MenuController(private val model: Model, private val config: Config) { @FXML private fun onMenuItemPreferencesAction() { - PreferencesDialog(menuBar.scene.window, config).showAndWait().ifPresent { result -> + PreferencesDialog(menuBar.scene.window, config, resources).showAndWait().ifPresent { result -> when (result) { - PreferencesDialog.Result.CHANGES -> config.save() - PreferencesDialog.Result.NO_CHANGES -> config.load() + PreferencesDialog.Result.SAVE_CHANGES -> config.save() + PreferencesDialog.Result.DO_NOT_SAVE_CHANGES -> config.load() } } } diff --git a/src/main/kotlin/com/marvinelsen/willow/ui/controllers/dialogs/PreferencesDialogController.kt b/src/main/kotlin/com/marvinelsen/willow/ui/controllers/dialogs/PreferencesDialogController.kt new file mode 100644 index 0000000..08f70df --- /dev/null +++ b/src/main/kotlin/com/marvinelsen/willow/ui/controllers/dialogs/PreferencesDialogController.kt @@ -0,0 +1,108 @@ +package com.marvinelsen.willow.ui.controllers.dialogs + +import com.marvinelsen.willow.config.Config +import com.marvinelsen.willow.config.Pronunciation +import com.marvinelsen.willow.config.Script +import com.marvinelsen.willow.config.Theme +import com.marvinelsen.willow.ui.formatters.FontSizeTextFormatter +import javafx.fxml.FXML +import javafx.scene.control.CheckBox +import javafx.scene.control.ComboBox +import javafx.scene.control.Spinner +import java.util.Locale + +@Suppress("UnusedPrivateMember") +class PreferencesDialogController(private val config: Config) { + @FXML + private lateinit var comboBoxLocale: ComboBox + + @FXML + private lateinit var comboBoxTheme: ComboBox + + @FXML + private lateinit var comboBoxScript: ComboBox