Skip to content

Commit 5c7a1c7

Browse files
committed
enum style automation config selector for modules
1 parent db2a1b7 commit 5c7a1c7

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/main/kotlin/com/lambda/config/UserAutomationConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ class UserAutomationConfig(override val name: String) : AutomationConfig(name, U
3838
}
3939

4040
private fun Module.removeLink() {
41-
(automationConfig as? UserAutomationConfig)?.linkedModules?.value -= name
41+
(automationConfig as? UserAutomationConfig)?.linkedModules?.value?.remove(name)
4242
}
4343
}

src/main/kotlin/com/lambda/gui/components/SettingsWidget.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,19 @@ object SettingsWidget {
5555
ImGui.setNextWindowSizeConstraints(0f, 0f, Float.MAX_VALUE, io.displaySize.y * 0.5f)
5656
popupContextItem("##automation-config-popup-${config.name}", ImGuiPopupFlags.None) {
5757
combo("##LinkedConfig", preview = "Linked Config: ${config.backingAutomationConfig.name}") {
58-
UserAutomationConfigs.configurables.forEach { userConfig ->
59-
val selected = (userConfig as? UserAutomationConfig ?: return@forEach) === config.backingAutomationConfig
58+
val addItem: (Configurable) -> Unit = { item ->
59+
val selected = item === config.backingAutomationConfig
6060

61-
selectable(userConfig.name, selected) {
62-
if (selected) {
63-
userConfig.linkedModules.value -= config.name
64-
config.automationConfig = config.defaultAutomationConfig
65-
} else {
66-
userConfig.linkedModules.value += config.name
67-
config.automationConfig = userConfig
68-
}
61+
selectable(item.name, selected) {
62+
if (!selected) {
63+
(config.automationConfig as? UserAutomationConfig)?.linkedModules?.value?.remove(config.name)
64+
(item as? UserAutomationConfig)?.linkedModules?.value?.add(config.name)
65+
config.automationConfig = item as? AutomationConfig ?: return@selectable
66+
}
6967
}
7068
}
69+
addItem(config.defaultAutomationConfig)
70+
UserAutomationConfigs.configurables.forEach { addItem(it) }
7171
}
7272
buildConfigSettingsContext(config.automationConfig)
7373
}

0 commit comments

Comments
 (0)