From db900eb790403c26ab34b8a4d6c63fe05cc4b5e3 Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Tue, 28 May 2019 03:38:39 +0200 Subject: [PATCH 1/3] enable disable config items --- .../net/runelite/client/config/ConfigItem.java | 4 ++++ .../client/plugins/config/ConfigPanel.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java index 2af95af66d..11b3f6c321 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java @@ -54,4 +54,8 @@ public @interface ConfigItem String hide() default ""; String parent() default ""; + + String enabledBy() default ""; + + String disabledBy() default ""; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index 6235d87dc4..d51bea43d7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -892,6 +892,20 @@ public class ConfigPanel extends PluginPanel return; } } + + if (checkbox.isSelected()) + { + if (cid2.getItem().enabledBy().equals(cid.getItem().keyName())) + { + configManager.setConfiguration(cd.getGroup().value(), cid2.getItem().keyName(), "true"); + openGroupConfigPanel(listItem, config, cd); + } + else if (cid2.getItem().disabledBy().equals(cid.getItem().keyName())) + { + configManager.setConfiguration(cd.getGroup().value(), cid2.getItem().keyName(), "false"); + openGroupConfigPanel(listItem, config, cd); + } + } } } else if (component instanceof JSpinner) From d40043e5a408dd1a6e4f9341bdfefa8fe972a216 Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Tue, 28 May 2019 03:42:03 +0200 Subject: [PATCH 2/3] Move the reload plugin list code to its own function --- .../client/plugins/config/ConfigPanel.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index 9a28993a2d..6ab5c9048a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -850,10 +850,8 @@ public class ConfigPanel extends PluginPanel } configManager.setConfiguration(cd.getGroup().value(), cig.getGroup() + "_collapse", collapse); - - int scrollBarPosition = scrollPane.getVerticalScrollBar().getValue(); - openGroupConfigPanel(listItem, config, cd); - scrollPane.getVerticalScrollBar().setValue(scrollBarPosition); + + reloadPluginlist(listItem, config, cd); } } @@ -891,10 +889,8 @@ public class ConfigPanel extends PluginPanel if (itemHide.contains(cid.getItem().keyName())) { // If another options visibility changes depending on the value of this checkbox, then render the entire menu again - int scrollBarPosition = scrollPane.getVerticalScrollBar().getValue(); - openGroupConfigPanel(listItem, config, cd); - scrollPane.getVerticalScrollBar().setValue(scrollBarPosition); - return; + + reloadPluginlist(listItem, config, cd); } } @@ -903,12 +899,12 @@ public class ConfigPanel extends PluginPanel if (cid2.getItem().enabledBy().equals(cid.getItem().keyName())) { configManager.setConfiguration(cd.getGroup().value(), cid2.getItem().keyName(), "true"); - openGroupConfigPanel(listItem, config, cd); + reloadPluginlist(listItem, config, cd); } else if (cid2.getItem().disabledBy().equals(cid.getItem().keyName())) { configManager.setConfiguration(cd.getGroup().value(), cid2.getItem().keyName(), "false"); - openGroupConfigPanel(listItem, config, cd); + reloadPluginlist(listItem, config, cd); } } } @@ -1043,4 +1039,11 @@ public class ConfigPanel extends PluginPanel } } + + private void reloadPluginlist(PluginListItem listItem, Config config, ConfigDescriptor cd) + { + int scrollBarPosition = scrollPane.getVerticalScrollBar().getValue(); + openGroupConfigPanel(listItem, config, cd); + scrollPane.getVerticalScrollBar().setValue(scrollBarPosition); + } } From 973ab8962c0efe5d51b23929d411ed12ec14144d Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Tue, 28 May 2019 03:45:09 +0200 Subject: [PATCH 3/3] Support multiple values --- .../java/net/runelite/client/plugins/config/ConfigPanel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index 6ab5c9048a..0601438c4c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -896,12 +896,12 @@ public class ConfigPanel extends PluginPanel if (checkbox.isSelected()) { - if (cid2.getItem().enabledBy().equals(cid.getItem().keyName())) + if (cid2.getItem().enabledBy().contains(cid.getItem().keyName())) { configManager.setConfiguration(cd.getGroup().value(), cid2.getItem().keyName(), "true"); reloadPluginlist(listItem, config, cd); } - else if (cid2.getItem().disabledBy().equals(cid.getItem().keyName())) + else if (cid2.getItem().disabledBy().contains(cid.getItem().keyName())) { configManager.setConfiguration(cd.getGroup().value(), cid2.getItem().keyName(), "false"); reloadPluginlist(listItem, config, cd);