Ticket #12415: DrawModeUseAntialiasing.patch

File DrawModeUseAntialiasing.patch, 4.2 KB (added by kolesar, 10 years ago)
  • src/org/openstreetmap/josm/actions/mapmode/DrawAction.java

    diff --git a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
    index bdc4aad..d072cb3 100644
    a b import java.awt.Color;  
    1111import java.awt.Cursor;
    1212import java.awt.Graphics2D;
    1313import java.awt.Point;
     14import java.awt.RenderingHints;
    1415import java.awt.Stroke;
    1516import java.awt.event.ActionEvent;
    1617import java.awt.event.KeyEvent;
    import org.openstreetmap.josm.data.osm.OsmPrimitive;  
    5152import org.openstreetmap.josm.data.osm.Way;
    5253import org.openstreetmap.josm.data.osm.WaySegment;
    5354import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
     55import org.openstreetmap.josm.data.osm.visitor.paint.MapRendererFactory;
     56import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
     57import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
    5458import org.openstreetmap.josm.gui.MainMenu;
    5559import org.openstreetmap.josm.gui.MapFrame;
    5660import org.openstreetmap.josm.gui.MapView;
    import org.openstreetmap.josm.tools.Utils;  
    7175/**
    7276 * Mapmode to add nodes, create and extend ways.
    7377 */
    74 public class DrawAction extends MapMode implements MapViewPaintable, SelectionChangedListener, KeyPressReleaseListener, ModifierListener {
     78public class DrawAction extends MapMode implements MapViewPaintable, SelectionChangedListener, KeyPressReleaseListener, ModifierListener, PreferenceChangedListener {
    7579
    7680    private static final Color ORANGE_TRANSPARENT = new Color(Color.ORANGE.getRed(), Color.ORANGE.getGreen(), Color.ORANGE.getBlue(), 128);
    7781    private static final double PHI = Math.toRadians(90);
    public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh  
    117121    private static final BasicStroke BASIC_STROKE = new BasicStroke(1);
    118122
    119123    private static int snapToIntersectionThreshold;
     124    private boolean antialiasing;
    120125
    121126    /**
    122127     * Constructs a new {@code DrawAction}.
    public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh  
    137142        backspaceAction = new BackSpaceAction();
    138143        cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
    139144        cursorJoinWay = ImageProvider.getCursor("crosshair", "joinway");
    140 
     145        Main.pref.addPreferenceChangeListener(this);
    141146        readPreferences();
    142147        snapHelper.init();
    143148    }
    public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh  
    213218        if (!isEnabled())
    214219            return;
    215220        super.enterMode();
    216         readPreferences();
    217221
    218222        // determine if selection is suitable to continue drawing. If it
    219223        // isn't, set wayIsFinished to true to avoid superfluous repaints.
    public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh  
    246250        drawHelperLine = Main.pref.getBoolean("draw.helper-line", true);
    247251        drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
    248252        snapToIntersectionThreshold = Main.pref.getInteger("edit.snap-intersection-threshold", 10);
     253
     254        if (MapRendererFactory.getInstance().isWireframeMapRendererActive()) {
     255            antialiasing = Main.pref.getBoolean("mappaint.wireframe.use-antialiasing", false);
     256        } else {
     257            antialiasing = Main.pref.getBoolean("mappaint.use-antialiasing", true);
     258        }
    249259    }
    250260
    251261    @Override
    public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh  
    11261136            return;
    11271137
    11281138        Graphics2D g2 = g;
     1139        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, antialiasing ?
     1140            RenderingHints.VALUE_ANTIALIAS_ON : RenderingHints.VALUE_ANTIALIAS_OFF);
     1141
    11291142        snapHelper.drawIfNeeded(g2, mv);
    11301143        if (!drawHelperLine || wayIsFinished || shift)
    11311144            return;
    public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh  
    17941807            setEnabled(Main.map != null && Main.map.mapMode instanceof DrawAction);
    17951808        }
    17961809    }
     1810
     1811    @Override
     1812    public void preferenceChanged(PreferenceChangeEvent e) {
     1813        readPreferences();
     1814    }
    17971815}