Ticket #9228: 9228_v2.patch

File 9228_v2.patch, 2.9 KB (added by simon04, 8 years ago)
  • src/org/openstreetmap/josm/data/gpx/WayPoint.java

    diff --git a/src/org/openstreetmap/josm/data/gpx/WayPoint.java b/src/org/openstreetmap/josm/data/gpx/WayPoint.java
    index 4dfa7fd..cc94d47 100644
    a b public class WayPoint extends WithAttributes implements Comparable<WayPoint>, Te 
    2424
    2525    public double time;
    2626    public Color customColoring;
     27    public Color customColoringTransparent;
    2728    public boolean drawLine;
    2829    public int dir;
    2930
    public class WayPoint extends WithAttributes implements Comparable<WayPoint>, Te 
    3536        north = p.north;
    3637        time = p.time;
    3738        customColoring = p.customColoring;
     39        customColoringTransparent = p.customColoringTransparent;
    3840        drawLine = p.drawLine;
    3941        dir = p.dir;
    4042    }
  • 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..45ee328 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() & 0xFFFFFF) | ((hdopAlpha & 0xFF) << 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 { 
    563574                        // Therefore inverse the logic
    564575                        int hdopcolor = 255 - (hdoplvl > 255 ? 255 : hdoplvl);
    565576                        trkPnt.customColoring = colors[hdopcolor];
     577                        trkPnt.customColoringTransparent = hdopColors[hdopcolor];
    566578                    }
    567579                    if (oldWp != null) {
    568580                        double dist = c.greatCircleDistance(oldWp.getCoor());
    public class GpxLayer extends Layer { 
    738750                    continue;
    739751                }
    740752                Point screen = mv.getPoint(trkPnt.getEastNorth());
    741                 g.setColor(trkPnt.customColoring);
     753                g.setColor(trkPnt.customColoringTransparent);
    742754                if (hdopcircle && trkPnt.attr.get("hdop") != null) {
    743755                    // hdop value
    744756                    float hdop = ((Float)trkPnt.attr.get("hdop")).floatValue();