Changeset 372 in josm for trunk/src


Ignore:
Timestamp:
2007-10-12T17:16:03+02:00 (17 years ago)
Author:
gebner
Message:

Support shift-click in select mode.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

    r365 r372  
    1111import java.awt.event.ActionEvent;
    1212import java.util.Collection;
     13import java.util.Collections;
    1314import java.util.LinkedList;
    1415
     
    177178                        return;
    178179                boolean ctrl = (e.getModifiers() & ActionEvent.CTRL_MASK) != 0;
     180                boolean alt = (e.getModifiers() & ActionEvent.ALT_MASK) != 0;
     181                boolean shift = (e.getModifiers() & ActionEvent.SHIFT_MASK) != 0;
    179182
    180183                Collection<OsmPrimitive> sel = Main.ds.getSelected();
    181184                OsmPrimitive osm = Main.map.mapView.getNearest(e.getPoint());
    182                 if (ctrl) {
    183                         if (osm != null && !sel.contains(osm)) Main.ds.setSelected(osm);
    184 
     185                Collection osmColl = osm == null
     186                        ? Collections.emptyList() : Collections.singleton(osm);
     187                if (ctrl && shift) {
     188                        selectPrims(osmColl, true, false);
    185189                        mode = Mode.rotate;
    186190                        setCursor(ImageProvider.getCursor("rotate", null));
    187191                } else if (osm != null) {
    188                         if (!sel.contains(osm)) Main.ds.setSelected(osm);
    189 
     192                        selectPrims(osmColl, shift, ctrl);
    190193                        mode = Mode.move;
    191194                } else {
     
    213216
    214217        public void selectionEnded(Rectangle r, boolean alt, boolean shift, boolean ctrl) {
     218                selectPrims(selectionManager.getObjectsInRectangle(r, alt), shift, ctrl);
     219        }
     220
     221        public void selectPrims(Collection<OsmPrimitive> selectionList, boolean shift, boolean ctrl) {
    215222            if (shift && ctrl)
    216223                        return; // not allowed together
     
    222229                        curSel = Main.ds.getSelected();
    223230
    224                 Collection<OsmPrimitive> selectionList = selectionManager.getObjectsInRectangle(r,alt);
    225231                for (OsmPrimitive osm : selectionList)
    226232                        if (ctrl)
Note: See TracChangeset for help on using the changeset viewer.