Ticket #3910: lassoOnS-5966.patch
| File lassoOnS-5966.patch, 4.4 KB (added by , 13 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/MapFrame.java
131 131 private final Map<Layer, MapMode> lastMapMode = new HashMap<Layer, MapMode>(); 132 132 private final MapMode mapModeDraw; 133 133 private final MapMode mapModeZoom; 134 public final MapMode mapModeLassoSelect; 134 135 135 136 /** 136 137 * The status line below the map … … 207 208 208 209 // toolBarActions, map mode buttons 209 210 addMapMode(new IconToggleButton(mapModeSelect = new SelectAction(this))); 210 addMapMode(new IconToggleButton( new LassoModeAction(), true));211 addMapMode(new IconToggleButton(mapModeLassoSelect = new LassoModeAction(), true)) ; 211 212 addMapMode(new IconToggleButton(mapModeDraw = new DrawAction(this))); 212 213 addMapMode(new IconToggleButton(mapModeZoom = new ZoomAction(this))); 213 214 addMapMode(new IconToggleButton(new DeleteAction(this), true)); … … 375 376 return false; 376 377 377 378 MapMode oldMapMode = this.mapMode; 378 if (newMapMode == oldMapMode) 379 if (newMapMode == oldMapMode) { 380 newMapMode.reenterMode(); 379 381 return true; 382 } 380 383 if (oldMapMode != null) { 381 384 oldMapMode.exitMode(); 382 385 } -
src/org/openstreetmap/josm/actions/LassoModeAction.java
5 5 6 6 import org.openstreetmap.josm.Main; 7 7 import org.openstreetmap.josm.actions.mapmode.MapMode; 8 import org.openstreetmap.josm.tools.ImageProvider; 8 9 9 10 public class LassoModeAction extends MapMode { 10 11 … … 13 14 "rope", 14 15 tr("Lasso selection mode: select objects within a hand-drawn region"), 15 16 null, 16 null);17 ImageProvider.getCursor("normal", "rope")); 17 18 } 18 19 19 20 @Override … … 33 34 } 34 35 super.exitMode(); 35 36 } 37 38 @Override 39 public void reenterMode() { 40 if (Main.map != null && Main.map.mapModeSelect.repeatedKeySwitchLassoOption) { 41 Main.map.selectMapMode(Main.map.mapModeSelect); 42 } 43 } 36 44 } -
src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
104 104 } 105 105 106 106 private boolean lassoMode = false; 107 public boolean repeatedKeySwitchLassoOption; 107 108 108 109 // Cache previous mouse event (needed when only the modifier keys are 109 110 // pressed but the mouse isn't moved) … … 184 185 mv.addMouseMotionListener(this); 185 186 mv.setVirtualNodesEnabled(Main.pref.getInteger("mappaint.node.virtual-size", 8) != 0); 186 187 drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true); 188 repeatedKeySwitchLassoOption = Main.pref.getBoolean("mappaint.select.toggle-lasso-on-repeated-S", true); 187 189 cycleManager.init(); 188 190 virtualManager.init(); 189 191 // This is required to update the cursors when ctrl/shift/alt is pressed … … 890 892 this.lassoMode = lassoMode; 891 893 } 892 894 895 @Override 896 public void reenterMode() { 897 if (Main.map!=null && repeatedKeySwitchLassoOption) { 898 Main.map.selectMapMode(Main.map.mapModeLassoSelect); 899 } 900 } 901 893 902 CycleManager cycleManager = new CycleManager(); 894 903 VirtualManager virtualManager = new VirtualManager(); 895 904 -
src/org/openstreetmap/josm/actions/mapmode/MapMode.java
64 64 putValue("active", false); 65 65 Main.map.mapView.resetCursor(this); 66 66 } 67 /** 68 * For optionlal overloading - called when action is repeated while mapmode 69 * is already active 70 */ 71 public void reenterMode() { 72 } 67 73 68 74 protected void updateStatusLine() { 69 75 Main.map.statusLine.setHelpText(getModeHelpText());
