Ignore:
Timestamp:
2025-02-14T10:20:59+01:00 (14 months ago)
Author:
stoecker
Message:

support 2 more circle drawing data sources for NMEA, patch by StephaneP (slightly modified), fix #21007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java

    r19080 r19316  
    2121import javax.swing.ButtonGroup;
    2222import javax.swing.JCheckBox;
     23import javax.swing.JComboBox;
    2324import javax.swing.JLabel;
    2425import javax.swing.JOptionPane;
     
    6667    private final JCheckBox forceRawGpsLines = new JCheckBox(tr("Force lines if no segments imported"));
    6768    private final JCheckBox largeGpsPoints = new JCheckBox(tr("Draw large GPS points"));
    68     private final JCheckBox hdopCircleGpsPoints = new JCheckBox(tr("Draw a circle from HDOP value"));
     69    private final JCheckBox circleGpsPoints = new JCheckBox(tr("Draw a circle from value"));
     70    private final JComboBox<String> circleDataSource = new JosmComboBox<>(new String[] {tr("Hdop"), tr("Horizontal deviation estimate"), tr("Age of correction data")});
    6971    private final JRadioButton colorTypeVelocity = new JRadioButton(tr("Velocity (red = slow, green = fast)"));
    7072    private final JRadioButton colorTypeDirection = new JRadioButton(tr("Direction (red = west, yellow = north, green = east, blue = south)"));
     
    133135        m.put("markers.pattern", Marker.LABEL_PATTERN_AUTO);
    134136        m.put("markers.audio.pattern", "?{ '{name}' | '{desc}' | '{" + Marker.MARKER_FORMATTED_OFFSET + "}' }");
    135         m.put("points.hdopcircle", false);
     137        m.put("points.circle", false);
     138        m.put("points.circle.data.source", 0);
    136139        m.put("points.large", false);
    137140        m.put("points.large.alpha", -1); //Expert mode only
     
    421424        add(drawGpsArrowsMinDist, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
    422425
    423         // hdopCircleGpsPoints
    424         hdopCircleGpsPoints.setToolTipText(tr("Draw a circle from HDOP value"));
    425         add(hdopCircleGpsPoints, GBC.eop().insets(20, 0, 0, 0));
    426         ExpertToggleAction.addVisibilitySwitcher(hdopCircleGpsPoints);
     426        // circleGpsPoints
     427        circleGpsPoints.addItemListener(e -> {circleDataSource.setEnabled(circleGpsPoints.isSelected());});
     428        circleGpsPoints.setToolTipText(tr("Draw a circle from value"));
     429        circleDataSource.setToolTipText(tr("Source of the circle size"));
     430        circleDataSource.setEnabled(false);
     431
     432        add(circleGpsPoints, GBC.std().insets(20, 0, 0, 0));
     433        add(circleDataSource, GBC.eop().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
     434        ExpertToggleAction.addVisibilitySwitcher(circleGpsPoints);
     435        ExpertToggleAction.addVisibilitySwitcher(circleDataSource);
    427436
    428437        // largeGpsPoints
     
    623632        drawGpsArrowsFast.setSelected(prefBool("lines.arrows.fast"));
    624633        drawGpsArrowsMinDist.setText(pref("lines.arrows.min-distance"));
    625         hdopCircleGpsPoints.setSelected(prefBool("points.hdopcircle"));
     634        circleGpsPoints.setSelected(prefBool("points.circle"));
     635        circleDataSource.setSelectedIndex(prefInt("points.circle.data.source"));
    626636        largeGpsPoints.setSelected(prefBool("points.large"));
    627637        useGpsAntialiasing.setSelected(Config.getPref().getBoolean("mappaint.gpx.use-antialiasing", false));
     
    699709        }
    700710
    701         putPref("points.hdopcircle", hdopCircleGpsPoints.isSelected());
     711        putPref("points.circle", circleGpsPoints.isSelected());
     712        putPref("points.circle.data.source", circleDataSource.getSelectedIndex());
    702713        putPref("points.large", largeGpsPoints.isSelected());
    703714        putPref("lines.width", drawLineWidth.getText());
Note: See TracChangeset for help on using the changeset viewer.