summaryrefslogtreecommitdiff
path: root/src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-02-23 23:11:09 +0200
committerKyren223 <ulmliad223@gmail.com>2024-02-23 23:11:09 +0200
commit5da72c7ec98edfab7fbebc335e1a9fba116988a5 (patch)
treeb44ff2e0a10c1f5c58c7da50c91efc1b7dd2be9d /src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt
parent1017f0d17aa1c745ec0af2de4239c37816d040eb (diff)
Added a new menu for path mappings to allow shortcuts like the built-in `...`
Note: need to rethink how normal paths are saved, they should potentially be saved raw (not absolute paths) and then the virtual file list needs to change to string and then dynamically on the fly replace with mappings of key -> value to make an absolute path that then will be used
Diffstat (limited to 'src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt')
-rw-r--r--src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt b/src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt
new file mode 100644
index 0000000..3caaf4b
--- /dev/null
+++ b/src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt
@@ -0,0 +1,50 @@
+// Copyright 2000-2022 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package me.kyren223.trident
+
+import com.intellij.openapi.options.Configurable
+import com.intellij.openapi.util.NlsContexts.ConfigurableName
+import javax.swing.JComponent
+
+class SettingsConfigurable : Configurable {
+ private var settings: SettingsData? = null
+ override fun getDisplayName(): @ConfigurableName String {
+ return "Trident Settings"
+ }
+
+ override fun createComponent(): JComponent {
+ settings = SettingsData()
+ return settings!!.panel
+ }
+
+ override fun isModified(): Boolean {
+ val settings = SettingsState.instance
+ if (settings.width != this.settings!!.getWidth()) return true
+ if (settings.height != this.settings!!.getHeight()) return true
+ if (settings.fontSize != this.settings!!.getFontSize()) return true
+ if (settings.enterToSelect != this.settings!!.getEnterToSelect()) return true
+ return false
+ }
+
+ override fun apply() {
+ val settings = SettingsState.instance
+ settings.width = this.settings!!.getWidth()
+ settings.height = this.settings!!.getHeight()
+ settings.fontSize = this.settings!!.getFontSize()
+ settings.enterToSelect = this.settings!!.getEnterToSelect()
+ }
+
+ override fun reset() {
+ val settings = SettingsState.instance
+ if (this.settings == null) {
+ this.settings = SettingsData()
+ }
+ this.settings!!.setWidth(settings.width)
+ this.settings!!.setHeight(settings.height)
+ this.settings!!.setFontSize(settings.fontSize)
+ this.settings!!.setEnterToSelect(settings.enterToSelect)
+ }
+
+ override fun disposeUIResources() {
+ settings = null
+ }
+}