Ignore:
Timestamp:
2013-06-20T02:28:28+02:00 (11 years ago)
Author:
donvip
Message:

[josm_utilsplugin2] fix #josm8350 - Copy tags from previous selection 'forgets' the tags when an untagged object is selected.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/TagBufferAction.java

    r28028 r29672  
    8383            tags.putAll(currentTags);
    8484        }
    85         rememberSelectionTags();
     85        if( getCurrentDataSet() != null)
     86            rememberSelectionTags();
    8687
    8788        setEnabled(selection != null && !selection.isEmpty() && !tags.isEmpty());
     
    8990
    9091    private void rememberSelectionTags() {
    91         if( getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty() ) {
     92        // Fix #8350 - only care about tagged objects
     93        Collection<OsmPrimitive> selectedTaggedObjects = new ArrayList<OsmPrimitive>(getCurrentDataSet().getSelected());
     94        for (Iterator<OsmPrimitive> it = selectedTaggedObjects.iterator(); it.hasNext(); ) {
     95            if (!it.next().isTagged()) {
     96                it.remove();
     97            }
     98        }
     99        if( !selectedTaggedObjects.isEmpty() ) {
    92100            currentTags.clear();
    93101            Set<String> bad = new HashSet<String>();
    94             for( OsmPrimitive p : getCurrentDataSet().getSelected() ) {
     102            for( OsmPrimitive p : selectedTaggedObjects ) {
    95103                if( currentTags.isEmpty() ) {
    96104                    for( String key : p.keySet() )
Note: See TracChangeset for help on using the changeset viewer.