Skip to content

Commit

Permalink
Bug Fix: Fixed colors settings triggering eventList update when not n…
Browse files Browse the repository at this point in the history
…eeded

 - lookAndfeel changes never need eventList update (as the change only take effect after restart)
 - Color changes was triggering update if there was any change from the default (no matter when the changes was made)
  • Loading branch information
GoldenGnu committed Nov 4, 2021
1 parent 04c21a4 commit bc58223
Showing 1 changed file with 6 additions and 9 deletions.
Expand Up @@ -40,7 +40,6 @@
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import javax.swing.ButtonGroup;
Expand All @@ -57,7 +56,6 @@
import net.nikr.eve.jeveasset.data.settings.ColorTheme.ColorThemeTypes;
import net.nikr.eve.jeveasset.data.settings.ColorSettings.ColorRow;
import net.nikr.eve.jeveasset.data.settings.ColorSettings.PredefinedLookAndFeel;
import net.nikr.eve.jeveasset.data.settings.ColorTheme.ColorThemeEntry;
import net.nikr.eve.jeveasset.data.settings.Settings;
import net.nikr.eve.jeveasset.gui.images.Images;
import net.nikr.eve.jeveasset.gui.shared.JSimpleColorPicker;
Expand All @@ -79,7 +77,7 @@ public class ColorSettingsPanel extends JSettingsPanel {
private final EventList<ColorRow> eventList;
private final DefaultEventSelectionModel<ColorRow> selectionModel;
private ColorThemeTypes colorThemeTypes;
private Collection<ColorThemeEntry> colors;
private List<ColorRow> colors;
private String lookAndFeelClass;
private boolean updateLock = false;
private final List<JThemeMenuItem> jThemeMenuItems = new ArrayList<>();
Expand Down Expand Up @@ -308,19 +306,18 @@ public void actionPerformed(ActionEvent e) {
@Override
public boolean save() {
boolean lookAndfeelChanged = !Settings.get().getColorSettings().getLookAndFeelClass().equals(lookAndFeelClass);
boolean colorChanged = !Settings.get().getColorSettings().getColorTheme().getColors().values().equals(colors);
boolean update = lookAndfeelChanged || colorChanged;
Settings.get().getColorSettings().setColorTheme(colorThemeTypes.getInstance(), true); //Later overwritten by table values, but, set uneditable values
Settings.get().getColorSettings().setLookAndFeelClass(lookAndFeelClass);
try {
eventList.getReadWriteLock().readLock().lock();
for (ColorRow row : eventList) {
update = Settings.get().getColorSettings().set(row) || update;
Settings.get().getColorSettings().set(row);
}
} finally {
eventList.getReadWriteLock().readLock().unlock();
}
colors = new ArrayList<>(colorThemeTypes.getInstance().getColors().values()); //Copy to check for changes on save
boolean update = !Settings.get().getColorSettings().get().equals(colors);
colors = Settings.get().getColorSettings().get(); //Copy to check for changes on save
if (lookAndfeelChanged && !UIManager.getLookAndFeel().getClass().getName().equals(lookAndFeelClass)) {
JOptionPane.showMessageDialog(parent, DialoguesSettings.get().lookAndFeelMsg(), DialoguesSettings.get().lookAndFeelTitle(), JOptionPane.PLAIN_MESSAGE);
}
Expand All @@ -330,10 +327,10 @@ public boolean save() {
@Override
public void load() {
updateLock = true;
updateTable(Settings.get().getColorSettings().get());
colors = Settings.get().getColorSettings().get(); //Copy to check for changes on save
updateTable(Settings.get().getColorSettings().get()); //This copy will be edited
colorThemeTypes = Settings.get().getColorSettings().getColorTheme().getType();
select(colorThemeTypes);
colors = new ArrayList<>(colorThemeTypes.getInstance().getColors().values()); //Copy to check for changes on save
lookAndFeelClass = Settings.get().getColorSettings().getLookAndFeelClass();
select(lookAndFeelClass);
updateLock = false;
Expand Down

0 comments on commit bc58223

Please sign in to comment.