Ticket #9065: josm_patch_building_tools_autoselect_replace_v1.patch

File josm_patch_building_tools_autoselect_replace_v1.patch, 4.6 KB (added by Woazboat, 2 years ago)

Patch adding a new configuration option to always replace selection with new building

  • plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/BuildingSizeDialog.java

     
    2121    private final JFormattedTextField tlenstep = new JFormattedTextField(NumberFormat.getInstance());
    2222    private final JCheckBox caddr = new JCheckBox(tr("Use Address dialog"));
    2323    private final JCheckBox cAutoSelect = new JCheckBox(tr("Auto-select building"));
     24    private final JCheckBox cAutoSelectReplaceSelection = new JCheckBox(tr("Auto-select replaces existing selection"));
    2425    private final JCheckBox cAddrNode = new JCheckBox(tr("Use address nodes under buildings"));
    2526    private final JRadioButton circleRadio = new JRadioButton(tr("Circle"));
    2627    private final JRadioButton rectangleRadio = new JRadioButton(tr("Rectangle"));
     
    4142        addLabelled(tr("Length step:"), tlenstep);
    4243        panel.add(caddr, GBC.eol().fill(GBC.HORIZONTAL));
    4344        panel.add(cAutoSelect, GBC.eol().fill(GBC.HORIZONTAL));
     45        panel.add(cAutoSelectReplaceSelection, GBC.eol().fill(GBC.HORIZONTAL));
    4446        panel.add(cAddrNode, GBC.eol().fill(GBC.HORIZONTAL));
    4547
    4648        twidth.setValue(ToolSettings.getWidth());
     
    4749        tlenstep.setValue(ToolSettings.getLenStep());
    4850        caddr.setSelected(ToolSettings.isUsingAddr());
    4951        cAutoSelect.setSelected(ToolSettings.isAutoSelect());
     52        cAutoSelectReplaceSelection.setSelected(ToolSettings.isAutoSelectReplaceSelection());
    5053        cAddrNode.setSelected(ToolSettings.PROP_USE_ADDR_NODE.get());
    5154
    5255        JButton bAdv = new JButton(tr("Advanced..."));
     
    9497        ToolSettings.setSizes(width(), lenstep());
    9598        ToolSettings.setAddrDialog(useAddr());
    9699        ToolSettings.setAutoSelect(cAutoSelect.isSelected());
     100        ToolSettings.setAutoSelectReplaceSelection(cAutoSelectReplaceSelection.isSelected());
    97101        ToolSettings.PROP_USE_ADDR_NODE.put(cAddrNode.isSelected());
    98102    }
    99103}
  • plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java

     
    350350                if (ToolSettings.isUsingAddr())
    351351                    showAddrDialog(w);
    352352                if (ToolSettings.isAutoSelect()
    353                         && (getLayerManager().getEditDataSet().getSelected().isEmpty() || shift)) {
     353                        && (getLayerManager().getEditDataSet().getSelected().isEmpty() || shift ||
     354                            ToolSettings.isAutoSelectReplaceSelection())) {
    354355                    getLayerManager().getEditDataSet().setSelected(w);
    355356                }
    356357            }
  • plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/ToolSettings.java

     
    3030    private static double lenstep;
    3131    private static boolean useAddr;
    3232    private static final Map<String, String> TAGS = new HashMap<>();
    33     private static boolean autoSelect;
    3433
    3534    public static Shape getShape() {
    3635        loadShape();
     
    119118    }
    120119
    121120    public static boolean isAutoSelect() {
    122         return autoSelect;
     121        return Config.getPref().getBoolean("buildings_tools.autoselect", false);
    123122    }
    124123
    125124    public static void setAutoSelect(boolean autoSelect) {
    126         ToolSettings.autoSelect = autoSelect;
     125        Config.getPref().putBoolean("buildings_tools.autoselect", autoSelect);
    127126    }
    128127
     128    public static boolean isAutoSelectReplaceSelection() {
     129        return Config.getPref().getBoolean("buildings_tools.autoselect_replace_selection", false);
     130    }
     131
     132    public static void setAutoSelectReplaceSelection(boolean autoSelectReplace) {
     133        Config.getPref().putBoolean("buildings_tools.autoselect_replace_selection", autoSelectReplace);
     134    }
     135
    129136    public static boolean isNoClickAndDrag() {
    130137        return Config.getPref().getBoolean("buildings_tools.noclickdrag", false);
    131138    }