From 7b5c483c3c189a6110cd4b784d1891c3c1dc24dc Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 5 Jun 2020 12:42:30 -0400 Subject: [PATCH] config panel: add option to reset individual config options --- .../client/plugins/config/ConfigPanel.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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 db39c25e50..93f3e77287 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 @@ -67,6 +67,7 @@ import javax.swing.event.ChangeListener; import javax.swing.text.JTextComponent; import lombok.extern.slf4j.Slf4j; import net.runelite.client.config.ConfigDescriptor; +import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItemDescriptor; import net.runelite.client.config.ConfigManager; @@ -329,6 +330,7 @@ class ConfigPanel extends PluginPanel JLabel configEntryName = new JLabel(name); configEntryName.setForeground(Color.WHITE); configEntryName.setToolTipText("" + name + ":
" + cid.getItem().description() + ""); + PluginListItem.addLabelPopupMenu(configEntryName, createResetMenuItem(pluginConfig, cid)); item.add(configEntryName, BorderLayout.CENTER); if (cid.getType() == boolean.class) @@ -652,4 +654,21 @@ class ConfigPanel extends PluginPanel } SwingUtilities.invokeLater(this::rebuild); } + + private JMenuItem createResetMenuItem(PluginConfigurationDescriptor pluginConfig, ConfigItemDescriptor configItemDescriptor) + { + JMenuItem menuItem = new JMenuItem("Reset"); + menuItem.addActionListener(e -> { + ConfigDescriptor configDescriptor = pluginConfig.getConfigDescriptor(); + ConfigGroup configGroup = configDescriptor.getGroup(); + ConfigItem configItem = configItemDescriptor.getItem(); + + // To reset one item we'll just unset it and then apply defaults over the whole group + configManager.unsetConfiguration(configGroup.value(), configItem.keyName()); + configManager.setDefaultConfiguration(pluginConfig.getConfig(), false); + + rebuild(); + }); + return menuItem; + } }