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, "") } } }