Ticket #9228: 9228.patch

File 9228.patch, 1.6 KB (added by simon04, 8 years ago)
  • src/org/openstreetmap/josm/gui/layer/GpxLayer.java

    diff --git a/src/org/openstreetmap/josm/gui/layer/GpxLayer.java b/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
    index 5ccbcfd..7adc791 100644
    a b public class GpxLayer extends Layer { 
    363363    }
    364364
    365365    private final static Color[] colors = new Color[256];
     366    /** Colors (with custom alpha channel, if given) for HDOP painting. */
     367    private final static Color[] hdopColors;
    366368    static {
    367369        for (int i = 0; i < colors.length; i++) {
    368370            colors[i] = Color.getHSBColor(i / 300.0f, 1, 1);
    369371        }
     372        final int hdopAlpha = Main.pref.getInteger("hdop.color.alpha", -1);
     373        if (hdopAlpha >= 0) {
     374            hdopColors = new Color[256];
     375            for (int i = 0; i < hdopColors.length; i++) {
     376                hdopColors[i] = new Color(colors[i].getRGB() | hdopAlpha << 24, true);
     377            }
     378        } else {
     379            hdopColors = colors;
     380        }
    370381    }
    371382
    372383    private final static Color[] colors_cyclic = new Color[256];
    public class GpxLayer extends Layer { 
    562573                        // High hdop is bad, but high values in colors are green.
    563574                        // Therefore inverse the logic
    564575                        int hdopcolor = 255 - (hdoplvl > 255 ? 255 : hdoplvl);
    565                         trkPnt.customColoring = colors[hdopcolor];
     576                        trkPnt.customColoring = hdopColors[hdopcolor];
    566577                    }
    567578                    if (oldWp != null) {
    568579                        double dist = c.greatCircleDistance(oldWp.getCoor());