Ticket #8798: IgnoreSharedNodes2-BothDirections.patch
| File IgnoreSharedNodes2-BothDirections.patch, 2.4 KB (added by , 13 years ago) |
|---|
-
src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
71 71 private Node selectedNode = null; 72 72 private Color mainColor; 73 73 private Stroke mainStroke; 74 private boolean ignoreSharedNodes; 74 75 75 76 /** 76 77 * drawing settings for helper lines … … 212 213 213 214 oldLineStroke = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.ctrl.stroke.old-line", "1")); 214 215 mainStroke = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.stroke.main", "3")); 216 217 ignoreSharedNodes = Main.pref.getBoolean("extrude.ignore-shared-nodes", false); 215 218 } 216 219 217 220 @Override public void exitMode() { … … 445 448 //move existing node 446 449 Node n1Old = selectedSegment.getFirstNode(); 447 450 cmds.add(new MoveCommand(n1Old, Main.getProjection().eastNorth2latlon(newN1en))); 451 } else if (ignoreSharedNodes && nodeOverlapsSegment && !alwaysCreateNodes && hasOtherWays) { 452 // replace shared node with new one 453 Node n1Old = selectedSegment.getFirstNode(); 454 Node n1New = new Node(Main.getProjection().eastNorth2latlon(newN1en)); 455 wnew.addNode(insertionPoint, n1New); 456 wnew.removeNode(n1Old); 457 wayWasModified = true; 458 cmds.add(new AddCommand(n1New)); 448 459 } else { 449 460 //introduce new node 450 461 Node n1New = new Node(Main.getProjection().eastNorth2latlon(newN1en)); … … 463 474 //move existing node 464 475 Node n2Old = selectedSegment.getSecondNode(); 465 476 cmds.add(new MoveCommand(n2Old, Main.getProjection().eastNorth2latlon(newN2en))); 477 } else if (ignoreSharedNodes && nodeOverlapsSegment && !alwaysCreateNodes && hasOtherWays) { 478 // replace shared node with new one 479 Node n2Old = selectedSegment.getSecondNode(); 480 Node n2New = new Node(Main.getProjection().eastNorth2latlon(newN2en)); 481 wnew.addNode(insertionPoint, n2New); 482 wnew.removeNode(n2Old); 483 wayWasModified = true; 484 cmds.add(new AddCommand(n2New)); 466 485 } else { 467 486 //introduce new node 468 487 Node n2New = new Node(Main.getProjection().eastNorth2latlon(newN2en));
