Index: src/org/openstreetmap/josm/gui/layer/GpxLayer.java =================================================================== --- src/org/openstreetmap/josm/gui/layer/GpxLayer.java (revision 2143) +++ src/org/openstreetmap/josm/gui/layer/GpxLayer.java (working copy) @@ -80,6 +80,11 @@ private int computeCacheColorTracksTune; private boolean isLocalFile; + private class Markers { + public boolean timedMarkersOmitted = false; + public boolean untimedMarkersOmitted = false; + } + public GpxLayer(GpxData d) { super((String) d.attr.get("name")); data = d; @@ -260,8 +265,10 @@ if (sel != null) { double firstStartTime = sel[0].lastModified() / 1000.0 /* ms -> seconds */ - AudioUtil.getCalibratedDuration(sel[0]); + + Markers m = new Markers(); for (int i = 0; i < sel.length; i++) { - importAudio(sel[i], ml, firstStartTime); + importAudio(sel[i], ml, firstStartTime, m); } } Main.main.addLayer(ml); @@ -948,8 +955,9 @@ * timestamp on the wav file (e) (in future) voice recognised markers in the sound recording (f) * a single marker at the beginning of the track * @param wavFile : the file to be associated with the markers in the new marker layer + * @param markers : keeps track of warning messages to avoid repeated warnings */ - private void importAudio(File wavFile, MarkerLayer ml, double firstStartTime) { + private void importAudio(File wavFile, MarkerLayer ml, double firstStartTime, Markers markers) { String uri = "file:".concat(wavFile.getAbsolutePath()); Collection waypoints = new ArrayList(); boolean timedMarkersOmitted = false; @@ -1150,17 +1158,19 @@ ml.data.add(am); } - if (timedMarkersOmitted) { + if (timedMarkersOmitted && !markers.timedMarkersOmitted) { JOptionPane .showMessageDialog( Main.parent, tr("Some waypoints with timestamps from before the start of the track or after the end were omitted or moved to the start.")); + markers.timedMarkersOmitted = timedMarkersOmitted; } - if (untimedMarkersOmitted) { + if (untimedMarkersOmitted && !markers.untimedMarkersOmitted) { JOptionPane .showMessageDialog( Main.parent, tr("Some waypoints which were too far from the track to sensibly estimate their time were omitted.")); + markers.untimedMarkersOmitted = untimedMarkersOmitted; } }