config panel: add option to reset individual config options
This commit is contained in:
@@ -67,6 +67,7 @@ import javax.swing.event.ChangeListener;
|
|||||||
import javax.swing.text.JTextComponent;
|
import javax.swing.text.JTextComponent;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.client.config.ConfigDescriptor;
|
import net.runelite.client.config.ConfigDescriptor;
|
||||||
|
import net.runelite.client.config.ConfigGroup;
|
||||||
import net.runelite.client.config.ConfigItem;
|
import net.runelite.client.config.ConfigItem;
|
||||||
import net.runelite.client.config.ConfigItemDescriptor;
|
import net.runelite.client.config.ConfigItemDescriptor;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
@@ -329,6 +330,7 @@ class ConfigPanel extends PluginPanel
|
|||||||
JLabel configEntryName = new JLabel(name);
|
JLabel configEntryName = new JLabel(name);
|
||||||
configEntryName.setForeground(Color.WHITE);
|
configEntryName.setForeground(Color.WHITE);
|
||||||
configEntryName.setToolTipText("<html>" + name + ":<br>" + cid.getItem().description() + "</html>");
|
configEntryName.setToolTipText("<html>" + name + ":<br>" + cid.getItem().description() + "</html>");
|
||||||
|
PluginListItem.addLabelPopupMenu(configEntryName, createResetMenuItem(pluginConfig, cid));
|
||||||
item.add(configEntryName, BorderLayout.CENTER);
|
item.add(configEntryName, BorderLayout.CENTER);
|
||||||
|
|
||||||
if (cid.getType() == boolean.class)
|
if (cid.getType() == boolean.class)
|
||||||
@@ -652,4 +654,21 @@ class ConfigPanel extends PluginPanel
|
|||||||
}
|
}
|
||||||
SwingUtilities.invokeLater(this::rebuild);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user