Ticket #7148: 0001-fix-7148-Make-sure-that-only-selectable-items-are-se.patch

File 0001-fix-7148-Make-sure-that-only-selectable-items-are-se.patch, 3.1 KB (added by KalleLampila, 13 years ago)
  • src/org/openstreetmap/josm/data/osm/DataSet.java

    From 49ecfd9b8c8e30b6621a68cb5a1b5d65ccd02a12 Mon Sep 17 00:00:00 2001
    From: Kalle Lampila <kalle.lampila@iki.fi>
    Date: Thu, 15 Dec 2011 21:30:43 +0200
    Subject: [PATCH] fix #7148 - Make sure that only selectable items are
     selected
    
    Signed-off-by: Kalle Lampila <kalle.lampila@iki.fi>
    ---
     src/org/openstreetmap/josm/data/osm/DataSet.java   |    2 +-
     .../josm/gui/dialogs/SelectionListDialog.java      |   24 +++++++++++++------
     2 files changed, 17 insertions(+), 9 deletions(-)
    
    diff --git a/src/org/openstreetmap/josm/data/osm/DataSet.java b/src/org/openstreetmap/josm/data/osm/DataSet.java
    index c25d884..61b2f9c 100644
    a b public class DataSet implements Cloneable, ProjectionChangeListener {  
    643643        synchronized (selectionLock) {
    644644            for (PrimitiveId id: selection) {
    645645                OsmPrimitive primitive = getPrimitiveByIdChecked(id);
    646                 if (primitive != null) {
     646                if (primitive != null && primitive.isSelectable()) {
    647647                    changed = changed | selectedPrimitives.add(primitive);
    648648                }
    649649            }
  • src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java b/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
    index cb44697..17d9408 100644
    a b public class SelectionListDialog extends ToggleDialog {  
    763763            int nodes = 0;
    764764            int relations = 0;
    765765            for (OsmPrimitive o : sel) {
    766                 if (o instanceof Way) {
    767                     ways++;
    768                 } else if (o instanceof Node) {
    769                     nodes++;
    770                 } else if (o instanceof Relation) {
    771                     relations++;
     766                if (o.isSelectable()) {
     767                    if (o instanceof Way) {
     768                        ways++;
     769                    } else if (o instanceof Node) {
     770                        nodes++;
     771                    } else if (o instanceof Relation) {
     772                        relations++;
     773                    }
    772774                }
    773775            }
    774776            StringBuffer text = new StringBuffer();
    public class SelectionListDialog extends ToggleDialog {  
    784786                text.append(text.length() > 0 ? ", " : "")
    785787                .append(trn("{0} relation", "{0} relations", relations, relations));
    786788            }
    787             if(ways + nodes + relations == 1)
     789            if(ways + nodes + relations == 0)
     790            {
     791                setText(tr("None"));
     792                setEnabled(false);
     793            } else if(ways + nodes + relations == 1)
    788794            {
    789795                text.append(": ");
    790796                for(OsmPrimitive o : sel) {
    791                     text.append(o.getDisplayName(df));
     797                    if (o.isSelectable()) {
     798                        text.append(o.getDisplayName(df));
     799                    }
    792800                }
    793801                setText(text.toString());
    794802            } else {