From e24febe1d4dafabcfb47941d2ce1dea2ded9b18d Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 15 Jan 2026 12:54:04 +0100 Subject: [PATCH] Reset defaults by setting value rather than remove Initially reset to defaults was set up by removing the key from the preferences but that didn't work well upstream, changing the value to default instead. --- app/src/processing/app/Preferences.kt | 3 +++ app/src/processing/app/ui/PDEPreferences.kt | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/processing/app/Preferences.kt b/app/src/processing/app/Preferences.kt index e742de189..53f1cbf4a 100644 --- a/app/src/processing/app/Preferences.kt +++ b/app/src/processing/app/Preferences.kt @@ -38,6 +38,9 @@ class ReactiveProperties : Properties() { operator fun set(key: String, value: String) { setProperty(key, value) } + fun remove() { + TODO("Not yet implemented") + } } /* diff --git a/app/src/processing/app/ui/PDEPreferences.kt b/app/src/processing/app/ui/PDEPreferences.kt index 9e3a92e60..438dbdb5f 100644 --- a/app/src/processing/app/ui/PDEPreferences.kt +++ b/app/src/processing/app/ui/PDEPreferences.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.window.application import com.mikepenz.markdown.compose.Markdown import com.mikepenz.markdown.m3.markdownColor import com.mikepenz.markdown.m3.markdownTypography +import processing.app.DEFAULTS_FILE_NAME import processing.app.LocalPreferences import processing.app.ReactiveProperties import processing.app.ui.PDEPreferences.Companion.preferences @@ -35,6 +36,7 @@ import processing.app.ui.theme.* import java.awt.Dimension import java.awt.event.WindowEvent import java.awt.event.WindowListener +import java.util.* import javax.swing.SwingUtilities import javax.swing.WindowConstants @@ -593,9 +595,16 @@ fun PDEPreferencePane.showPane(groups: PDEPreferenceGroups) { val prefs = LocalPreferences.current TextButton( onClick = { + val defaultsStream = + ClassLoader.getSystemResourceAsStream(DEFAULTS_FILE_NAME) ?: return@TextButton + val defaults = Properties().apply { + defaultsStream.reader(Charsets.UTF_8).use { + load(it) + } + } groups.forEach { group -> group.forEach { pref -> - prefs.remove(pref.key) + prefs[pref.key] = defaults.getProperty(pref.key, "") } } }