Changeset 5519 in josm for trunk/src/org/openstreetmap/josm/Main.java
- Timestamp:
- 2012-09-30T17:36:39+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/Main.java
r5514 r5519 628 628 } 629 629 630 /** 631 * Asks user to perform "save layer" operations (save .osm on disk and/or upload osm data to server) for all {@link OsmDataLayer} before JOSM exits. 632 * @return {@code true} if there was nothing to save, or if the user wants to proceed to save operations. {@code false} if the user cancels. 633 * @since 2025 634 */ 630 635 public static boolean saveUnsavedModifications() { 631 if (map == null) return true; 632 SaveLayersDialog dialog = new SaveLayersDialog(Main.parent); 636 if (map == null || map.mapView == null) return true; 637 return saveUnsavedModifications(map.mapView.getLayersOfType(OsmDataLayer.class), true); 638 } 639 640 /** 641 * Asks user to perform "save layer" operations (save .osm on disk and/or upload osm data to server) before osm layers deletion. 642 * 643 * @param selectedLayers The layers to check. Only instances of {@link OsmDataLayer} are considered. 644 * @param exit {@code true} if JOSM is exiting, {@code false} otherwise. 645 * @return {@code true} if there was nothing to save, or if the user wants to proceed to save operations. {@code false} if the user cancels. 646 * @since 5519 647 */ 648 public static boolean saveUnsavedModifications(List<? extends Layer> selectedLayers, boolean exit) { 649 SaveLayersDialog dialog = new SaveLayersDialog(parent); 633 650 List<OsmDataLayer> layersWithUnmodifiedChanges = new ArrayList<OsmDataLayer>(); 634 for (OsmDataLayer l: Main.map.mapView.getLayersOfType(OsmDataLayer.class)) { 635 if ((l.requiresSaveToFile() || l.requiresUploadToServer()) && l.data.isModified()) { 636 layersWithUnmodifiedChanges.add(l); 637 } 638 } 639 dialog.prepareForSavingAndUpdatingLayersBeforeExit(); 651 for (Layer l: selectedLayers) { 652 if (!(l instanceof OsmDataLayer)) { 653 continue; 654 } 655 OsmDataLayer odl = (OsmDataLayer)l; 656 if ((odl.requiresSaveToFile() || (odl.requiresUploadToServer() && !odl.isUploadDiscouraged())) && odl.data.isModified()) { 657 layersWithUnmodifiedChanges.add(odl); 658 } 659 } 660 if (exit) { 661 dialog.prepareForSavingAndUpdatingLayersBeforeExit(); 662 } else { 663 dialog.prepareForSavingAndUpdatingLayersBeforeDelete(); 664 } 640 665 if (!layersWithUnmodifiedChanges.isEmpty()) { 641 666 dialog.getModel().populate(layersWithUnmodifiedChanges);
Note:
See TracChangeset
for help on using the changeset viewer.