From 5da72c7ec98edfab7fbebc335e1a9fba116988a5 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Fri, 23 Feb 2024 23:11:09 +0200 Subject: 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 --- .../me/kyren223/trident/SettingsConfigurable.kt | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt (limited to 'src/main/kotlin/me/kyren223/trident/SettingsConfigurable.kt') 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 + } +} -- cgit v1.3.1