Merge pull request #10103 from dekvall/loottracker-confirm-reset
loottracker: add confirm dialog to reset all
This commit is contained in:
@@ -40,6 +40,7 @@ import javax.swing.BoxLayout;
|
|||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
import javax.swing.border.EmptyBorder;
|
import javax.swing.border.EmptyBorder;
|
||||||
@@ -74,6 +75,10 @@ class LootTrackerPanel extends PluginPanel
|
|||||||
|
|
||||||
private static final String HTML_LABEL_TEMPLATE =
|
private static final String HTML_LABEL_TEMPLATE =
|
||||||
"<html><body style='color:%s'>%s<span style='color:white'>%s</span></body></html>";
|
"<html><body style='color:%s'>%s<span style='color:white'>%s</span></body></html>";
|
||||||
|
private static final String SYNC_RESET_ALL_WARNING_TEXT =
|
||||||
|
"This will permanently delete the current loot from both the client and the RuneLite website.";
|
||||||
|
private static final String NO_SYNC_RESET_ALL_WARNING_TEXT =
|
||||||
|
"This will permanently delete the current loot from the client.";
|
||||||
|
|
||||||
// When there is no loot, display this
|
// When there is no loot, display this
|
||||||
private final PluginErrorPanel errorPanel = new PluginErrorPanel();
|
private final PluginErrorPanel errorPanel = new PluginErrorPanel();
|
||||||
@@ -312,6 +317,18 @@ class LootTrackerPanel extends PluginPanel
|
|||||||
final JMenuItem reset = new JMenuItem("Reset All");
|
final JMenuItem reset = new JMenuItem("Reset All");
|
||||||
reset.addActionListener(e ->
|
reset.addActionListener(e ->
|
||||||
{
|
{
|
||||||
|
final LootTrackerClient client = plugin.getLootTrackerClient();
|
||||||
|
final boolean syncLoot = client != null && config.syncPanel();
|
||||||
|
final int result = JOptionPane.showOptionDialog(overallPanel,
|
||||||
|
syncLoot ? SYNC_RESET_ALL_WARNING_TEXT : NO_SYNC_RESET_ALL_WARNING_TEXT,
|
||||||
|
"Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE,
|
||||||
|
null, new String[]{"Yes", "No"}, "No");
|
||||||
|
|
||||||
|
if (result != JOptionPane.YES_OPTION)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// If not in detailed view, remove all, otherwise only remove for the currently detailed title
|
// If not in detailed view, remove all, otherwise only remove for the currently detailed title
|
||||||
records.removeIf(r -> r.matches(currentView));
|
records.removeIf(r -> r.matches(currentView));
|
||||||
boxes.removeIf(b -> b.matches(currentView));
|
boxes.removeIf(b -> b.matches(currentView));
|
||||||
@@ -320,8 +337,7 @@ class LootTrackerPanel extends PluginPanel
|
|||||||
logsContainer.repaint();
|
logsContainer.repaint();
|
||||||
|
|
||||||
// Delete all loot, or loot matching the current view
|
// Delete all loot, or loot matching the current view
|
||||||
LootTrackerClient client = plugin.getLootTrackerClient();
|
if (syncLoot)
|
||||||
if (client != null && config.syncPanel())
|
|
||||||
{
|
{
|
||||||
client.delete(currentView);
|
client.delete(currentView);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user