Changeset 14718 in josm


Ignore:
Timestamp:
2019-01-21T23:07:32+01:00 (4 weeks ago)
Author:
simon04
Message:

see #16497 - Relative paths for geoimages in session file

Location:
trunk/src/org/openstreetmap/josm/io/session
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/session/GenericSessionExporter.java

    r14630 r14718  
    1313import java.io.IOException;
    1414import java.io.OutputStream;
    15 import java.nio.file.Path;
    1615
    1716import javax.swing.AbstractAction;
     
    194193            File f = layer.getAssociatedFile();
    195194            if (f != null) {
    196                 final Path sessionDirectory = support.getOutput().getParent();
    197                 final String fileString;
    198                 if (f.toPath().startsWith(sessionDirectory)) {
    199                     fileString = sessionDirectory.relativize(f.toPath()).toString();
    200                 } else {
    201                     fileString = f.toPath().toString();
    202                 }
     195                final String fileString = support.relativize(f.toPath());
    203196                file.appendChild(support.createTextNode(fileString));
    204197            }
  • trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java

    r12620 r14718  
    6969                break;
    7070            }
    71             addAttr("file", entry.getFile().getPath(), imgElem, support);
    72             // FIXME: relative filenames as option
     71            final String fileString = support.relativize(entry.getFile().toPath());
     72            addAttr("file", fileString, imgElem, support);
    7373            // FIXME: include images as option (?)
    7474
  • trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java

    r14630 r14718  
    207207            return output;
    208208        }
     209
     210        /**
     211         * Returns a relative path w.r.t. the {@linkplain #getOutput output} directory
     212         * @param path the path to relativize
     213         * @return the relative path
     214         * @see Path#relativize(Path)
     215         */
     216        String relativize(final Path path) {
     217            if (getOutput() == null) {
     218                return path.toString();
     219            }
     220            final Path sessionDirectory = getOutput().getParent();
     221            if (path.startsWith(sessionDirectory)) {
     222                return sessionDirectory.relativize(path).toString();
     223            } else {
     224                return path.toString();
     225            }
     226        }
    209227    }
    210228
Note: See TracChangeset for help on using the changeset viewer.