Changeset 526 in josm for trunk/src/org


Ignore:
Timestamp:
2008-01-24T22:15:30+01:00 (16 years ago)
Author:
framm
Message:
  • changed move mode to use an initial move threshold of 15 pixels, i.e. you have to move something farther than 15 pixels to initiate a move. configurable through option edit.initial-move-threshold.
  • added the key combination shift+arrow keys to "nudge" selected objects by one pixel in either direction.
Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
4 edited

Legend:

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

    r450 r526  
    2626
    2727        public JosmAction(String name, String iconName, String tooltip, int shortCut, int modifier, boolean register) {
    28                 super(name, ImageProvider.get(iconName));
     28                super(name, iconName == null ? null : ImageProvider.get(iconName));
    2929                setHelpId();
    3030                String scl = ShortCutLabel.name(shortCut, modifier);
  • trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

    r502 r526  
    5959        /**
    6060         * The time which needs to pass between click and release before something
    61          * counts as a move
    62          */
    63         private int initialMoveDelay = 100;
    64 
     61         * counts as a move, in milliseconds
     62         */
     63        private int initialMoveDelay = 200;
     64
     65        /**
     66         * The screen distance which needs to be travelled before something
     67         * counts as a move, in pixels
     68         */
     69        private int initialMoveThreshold = 15;
     70        private boolean initialMoveThresholdExceeded = false;
    6571        /**
    6672         * Create a new SelectAction
     
    7379                putValue("help", "Action/Move/Move");
    7480                selectionManager = new SelectionManager(this, false, mapFrame.mapView);         
    75                 try { initialMoveDelay = Integer.parseInt(Main.pref.get("edit.initial-move-delay","100")); } catch (NumberFormatException x) {};
     81                try { initialMoveDelay = Integer.parseInt(Main.pref.get("edit.initial-move-delay","200")); } catch (NumberFormatException x) {};
     82                try { initialMoveThreshold = Integer.parseInt(Main.pref.get("edit.initial-move-threshold","15")); } catch (NumberFormatException x) {};
     83               
    7684        }
    7785
     
    134142                if (mousePos == null) {
    135143                        mousePos = e.getPoint();
     144                        return;
     145                }
     146               
     147                if (!initialMoveThresholdExceeded) {
     148                        int dxp = mousePos.x - e.getX();
     149                        int dyp = mousePos.y - e.getY();
     150                        int dp = (int) Math.sqrt(dxp*dxp+dyp*dyp);
     151                        if (dp < initialMoveThreshold) return;
     152                        initialMoveThresholdExceeded = true;
    136153                }
    137154               
     
    201218                mouseDownTime = System.currentTimeMillis();
    202219                didMove = false;
     220                initialMoveThresholdExceeded = false;
    203221
    204222                Collection<OsmPrimitive> osmColl =
  • trunk/src/org/openstreetmap/josm/gui/MapFrame.java

    r431 r526  
    1010import javax.swing.BoxLayout;
    1111import javax.swing.ButtonGroup;
     12import javax.swing.JButton;
    1213import javax.swing.JPanel;
    1314import javax.swing.JToolBar;
    1415
    1516import org.openstreetmap.josm.Main;
     17import org.openstreetmap.josm.actions.MoveAction;
    1618import org.openstreetmap.josm.actions.mapmode.DeleteAction;
    1719import org.openstreetmap.josm.actions.mapmode.DrawAction;
  • trunk/src/org/openstreetmap/josm/gui/MapView.java

    r506 r526  
    99import java.awt.event.ComponentAdapter;
    1010import java.awt.event.ComponentEvent;
     11import java.awt.event.KeyEvent;
    1112import java.util.ArrayList;
    1213import java.util.Collection;
     
    1415import java.util.LinkedList;
    1516
     17import javax.swing.JComponent;
    1618import javax.swing.JOptionPane;
     19import javax.swing.KeyStroke;
    1720
    1821import org.openstreetmap.josm.Main;
    1922import org.openstreetmap.josm.actions.AutoScaleAction;
     23import org.openstreetmap.josm.actions.MoveAction;
    2024import org.openstreetmap.josm.data.Bounds;
    2125import org.openstreetmap.josm.data.SelectionChangedListener;
     
    3034import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    3135import org.openstreetmap.josm.gui.layer.OsmDataLayer.ModifiedChangedListener;
     36
     37import com.sun.corba.se.impl.oa.poa.ActiveObjectMap.Key;
    3238
    3339/**
     
    8288
    8389                                new MapMover(MapView.this, Main.contentPane);
     90                                Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, java.awt.event.InputEvent.SHIFT_MASK), "UP");
     91                                Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, java.awt.event.InputEvent.SHIFT_MASK), "DOWN");
     92                                Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, java.awt.event.InputEvent.SHIFT_MASK), "LEFT");
     93                                Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, java.awt.event.InputEvent.SHIFT_MASK), "RIGHT");
     94
     95                                Main.contentPane.getActionMap().put("UP", new MoveAction(MoveAction.Direction.UP));
     96                                Main.contentPane.getActionMap().put("DOWN", new MoveAction(MoveAction.Direction.DOWN));
     97                                Main.contentPane.getActionMap().put("LEFT", new MoveAction(MoveAction.Direction.LEFT));
     98                                Main.contentPane.getActionMap().put("RIGHT", new MoveAction(MoveAction.Direction.RIGHT));
     99                               
    84100
    85101                                MapSlider zoomSlider = new MapSlider(MapView.this);
Note: See TracChangeset for help on using the changeset viewer.