- Timestamp:
- 2024-06-20T06:45:59+02:00 (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
r19078 r19119 11 11 import java.util.Collection; 12 12 import java.util.Collections; 13 import java.util.HashSet;14 13 import java.util.LinkedHashSet; 15 14 import java.util.LinkedList; 16 15 import java.util.List; 17 16 import java.util.Objects; 18 import java.util.Set;19 17 import java.util.stream.Collectors; 20 18 import java.util.stream.IntStream; … … 280 278 } 281 279 282 // see #18083: check if we will combine ways at nodes outside of the download area283 Set<Node> endNodesOutside = new HashSet<>();284 for (Way w : selectedWays) {285 final Node[] endnodes = {w.firstNode(), w.lastNode()};286 for (Node n : endnodes) {287 if (!n.isNew() && !n.isReferrersDownloaded() && !endNodesOutside.add(n)) {288 new Notification(tr("Combine ways refused<br>" + "(A shared node may have additional referrers)"))289 .setIcon(JOptionPane.INFORMATION_MESSAGE).show();290 return;291 292 }293 }294 }295 296 280 // combine and update gui 297 281 Pair<Way, Command> combineResult; … … 304 288 305 289 if (combineResult == null) 290 return; 291 292 // see #18083: check if we will combine ways at nodes outside of the download area 293 if (!checkAndConfirmCombineOutlyingWays(selectedWays)) 306 294 return; 307 295 … … 347 335 } 348 336 337 /** 338 * Check whether user is about to combine ways with unknown parents. 339 * Request confirmation if he is. 340 * @param ways the primitives to operate on 341 * @return true, if operating on outlying primitives is OK; false, otherwise 342 */ 343 private static boolean checkAndConfirmCombineOutlyingWays(Collection<Way> ways) { 344 DownloadReferrersAction action = MainApplication.getMenu().downloadReferrers; 345 final String downloadHint = tr("You should use {0}->{1}({2}) first.", 346 MainApplication.getMenu().editMenu.getText(), action.getValue(NAME), action.getShortcut().toString()); 347 return Boolean.TRUE.equals(GuiHelper.runInEDTAndWaitAndReturn(() -> checkAndConfirmOutlyingOperation("combine", 348 tr("Combine confirmation"), 349 tr("You are about to combine ways which can be members of relations not yet downloaded." 350 + "<br>" 351 + "This can lead to damaging these parent relations (that you do not see)." 352 + "<br>" 353 + "{0}" 354 + "<br><br>" 355 + "Do you really want to combine without downloading?", downloadHint), 356 "", // not used, we never combine incomplete ways 357 ways, Collections.emptyList()))); 358 } 359 349 360 }
Note:
See TracChangeset
for help on using the changeset viewer.