@@ -22,6 +22,7 @@ import com.lambda.config.Configurable
2222import com.lambda.config.MutableAutomationConfig
2323import com.lambda.config.Setting
2424import com.lambda.config.UserAutomationConfig
25+ import com.lambda.config.configurations.UserAutomationConfigs
2526import com.lambda.gui.dsl.ImGuiBuilder
2627import com.lambda.module.Module
2728import com.lambda.util.NamedEnum
@@ -31,7 +32,7 @@ import imgui.flag.ImGuiTabBarFlags
3132
3233object SettingsWidget {
3334 /* *
34- * Builds the settings context popup content for a given configurable.
35+ * Builds the settings context popup content for the given configurable.
3536 */
3637 fun ImGuiBuilder.buildConfigSettingsContext (config : Configurable ) {
3738 group {
@@ -47,14 +48,29 @@ object SettingsWidget {
4748 button(" Automation Config" ) {
4849 ImGui .openPopup(" ##automation-config-popup-${config.name} " )
4950 }
51+ if (config.backingAutomationConfig != = config.defaultAutomationConfig) {
52+ sameLine()
53+ text(" (${config.backingAutomationConfig.name} )" )
54+ }
5055 ImGui .setNextWindowSizeConstraints(0f , 0f , Float .MAX_VALUE , io.displaySize.y * 0.5f )
5156 popupContextItem(" ##automation-config-popup-${config.name} " , ImGuiPopupFlags .None ) {
57+ combo(" ##LinkedConfig" , preview = " Linked Config: ${config.backingAutomationConfig.name} " ) {
58+ UserAutomationConfigs .configurables.forEach { userConfig ->
59+ val selected = (userConfig as ? UserAutomationConfig ? : return @forEach) == = config.backingAutomationConfig
60+
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+ }
69+ }
70+ }
71+ }
5272 buildConfigSettingsContext(config.automationConfig)
5373 }
54- if (config.backingAutomationConfig != = config.defaultAutomationConfig) {
55- sameLine()
56- text(" (${config.backingAutomationConfig.name} )" )
57- }
5874 }
5975 }
6076 val toIgnoreSettings =
0 commit comments