Ticket #13743: 13743.patch

File 13743.patch, 7.3 KB (added by simon04, 7 years ago)
  • src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java

    diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
    index 10d43d2..697153c 100644
    a b  
    2525    private int defaultSegmentWidth;
    2626    /** Preference: should the segment numbers of ways be displayed */
    2727    private boolean showOrderNumber;
     28    /** Preference: should the segment numbers of ways be displayed on selected way */
     29    private boolean showOrderNumberOnSelectedWay;
    2830    /** Preference: should only the last arrow of a way be displayed */
    2931    private boolean showHeadArrowOnly;
    3032    private int showNamesDistance;
    private void load() { 
    8991        }
    9092
    9193        showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false);
     94        showOrderNumberOnSelectedWay = Main.pref.getBoolean("draw.segment.order_number.on_selected", false);
    9295        showHeadArrowOnly = Main.pref.getBoolean("draw.segment.head_only", false);
    9396
    9497        showNamesDistance = Main.pref.getInteger("mappaint.shownames", 10000000);
    public boolean isShowOrderNumber() { 
    235238    }
    236239
    237240    /**
     241     * Determines if the segment numbers of the selected way should be displayed
     242     * @return {@code true} if the segment numbers of the selected way should be displayed
     243     */
     244    public boolean isShowOrderNumberOnSelectedWay() {
     245        return showOrderNumberOnSelectedWay;
     246    }
     247
     248    /**
    238249     * Specifies if only the last arrow of a way should be displayed
    239250     * @param showHeadArrowOnly {@code true} if only the last arrow of a way should be displayed
    240251     */
  • src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java

    diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
    index 214b38d..6835a30 100644
    a b  
    5959    protected boolean showHeadArrowOnly;
    6060    /** Preference: should the segment numbers of ways be displayed */
    6161    protected boolean showOrderNumber;
     62    /** Preference: should the segment numbers of the selected be displayed */
     63    protected boolean showOrderNumberOnSelectedWay;
    6264    /** Preference: should selected nodes be filled */
    6365    protected boolean fillSelectedNode;
    6466    /** Preference: should unselected nodes be filled */
    protected void getSettings(boolean virtual) { 
    133135        showOnewayArrow = settings.isShowOnewayArrow();
    134136        showHeadArrowOnly = settings.isShowHeadArrowOnly();
    135137        showOrderNumber = settings.isShowOrderNumber();
     138        showOrderNumberOnSelectedWay = settings.isShowOrderNumberOnSelectedWay();
    136139        selectedNodeSize = settings.getSelectedNodeSize();
    137140        unselectedNodeSize = settings.getUnselectedNodeSize();
    138141        connectionNodeSize = settings.getConnectionNodeSize();
    public void visit(Way w) { 
    320323                if ((pOutside & lastPOutside) == 0) {
    321324                    drawSegment(lastP, p, wayColor,
    322325                            showOnlyHeadArrowOnly ? !it.hasNext() : showThisDirectionArrow);
    323                     if (showOrderNumber && !isInactiveMode) {
     326                    if ((showOrderNumber || (showOrderNumberOnSelectedWay && w.isSelected())) && !isInactiveMode) {
    324327                        drawOrderNumber(lastP, p, orderNumber, g.getColor());
    325328                    }
    326329                }
  • src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java

    diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java
    index f66d4e2..4b024bc 100644
    a b public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings paintSetting 
    115115        painter.drawWay(w, myColor, myLine, myDashLine, myDashedColor, offset, showOrientation,
    116116                showOnlyHeadArrowOnly, showOneway, onewayReversed);
    117117
    118         if (paintSettings.isShowOrderNumber() && !painter.isInactiveMode()) {
     118        if ((paintSettings.isShowOrderNumber() || (paintSettings.isShowOrderNumberOnSelectedWay() && selected))
     119                && !painter.isInactiveMode()) {
    119120            int orderNumber = 0;
    120121            lastN = null;
    121122            for (Node n : w.getNodes()) {
  • src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java

    diff --git a/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java b/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java
    index 6e72b6c..fb388bf 100644
    a b public PreferenceSetting createPreferenceSetting() { 
    4242    private final JCheckBox headArrow = new JCheckBox(tr("Only on the head of a way."));
    4343    private final JCheckBox onewayArrow = new JCheckBox(tr("Draw oneway arrows."));
    4444    private final JCheckBox segmentOrderNumber = new JCheckBox(tr("Draw segment order numbers"));
     45    private final JCheckBox segmentOrderNumberOnSelectedWay = new JCheckBox(tr("Draw segment order numbers on selected way"));
    4546    private final JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data"));
    4647    private final JCheckBox virtualNodes = new JCheckBox(tr("Draw virtual nodes in select mode"));
    4748    private final JCheckBox inactive = new JCheckBox(tr("Draw inactive layers in other color"));
    public void addGui(PreferenceTabbedPane gui) { 
    9192        // segment order number
    9293        segmentOrderNumber.setToolTipText(tr("Draw the order numbers of all segments within their way."));
    9394        segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number", false));
     95        segmentOrderNumberOnSelectedWay.setToolTipText(tr("Draw the order numbers of all segments within their way."));
     96        segmentOrderNumberOnSelectedWay.setSelected(Main.pref.getBoolean("draw.segment.order_number.on_selected", false));
    9497
    9598        // downloaded area
    9699        sourceBounds.setToolTipText(tr("Draw the boundaries of data loaded from the server."));
    public void addGui(PreferenceTabbedPane gui) { 
    135138        panel.add(headArrow, GBC.eop().insets(40, 0, 0, 0));
    136139        panel.add(onewayArrow, GBC.eop().insets(20, 0, 0, 0));
    137140        panel.add(segmentOrderNumber, GBC.eop().insets(20, 0, 0, 0));
     141        panel.add(segmentOrderNumberOnSelectedWay, GBC.eop().insets(20, 0, 0, 0));
    138142
    139143        panel.add(new JLabel(tr("Select and draw mode options")),
    140144                GBC.eop().insets(5, 10, 0, 0));
    public boolean ok() { 
    175179        Main.pref.put("draw.segment.head_only", headArrow.isSelected());
    176180        Main.pref.put("draw.oneway", onewayArrow.isSelected());
    177181        Main.pref.put("draw.segment.order_number", segmentOrderNumber.isSelected());
     182        Main.pref.put("draw.segment.order_number.on_selected", segmentOrderNumberOnSelectedWay.isSelected());
    178183        Main.pref.put("draw.data.downloaded_area", sourceBounds.isSelected());
    179184        Main.pref.put("draw.data.inactive_color", inactive.isSelected());
    180185        Main.pref.put("mappaint.use-antialiasing", useAntialiasing.isSelected());