import tim.prune.data.Track;
import tim.prune.data.TrackInfo;
import tim.prune.data.UnitSetLibrary;
-import tim.prune.gui.ColourChooser;
-import tim.prune.gui.ColourPatch;
import tim.prune.gui.DialogCloser;
import tim.prune.gui.ImageUtils;
import tim.prune.gui.WholeNumberField;
+import tim.prune.gui.colour.ColourChooser;
+import tim.prune.gui.colour.ColourPatch;
import tim.prune.load.GenericFileFilter;
import tim.prune.save.xml.XmlUtils;
inWriter.write("<Folder>\n\t<name>");
if (_descriptionField != null && _descriptionField.getText() != null && !_descriptionField.getText().equals(""))
{
- inWriter.write(_descriptionField.getText());
+ inWriter.write(XmlUtils.fixCdata(_descriptionField.getText()));
}
else {
inWriter.write("Export from GpsPrune");
}
// Make a blob with description for each photo
// Photos have already been written so picture sizes already known
- if (point.getPhoto() != null && writePhotos && writeCurrentPoint)
+ if (point.getPhoto() != null && point.getPhoto().isValid() && writePhotos && writeCurrentPoint)
{
if (!writtenPhotoHeader)
{
numSaved += writeStandardTrack(inWriter, absoluteAltitudes, selStart, selEnd);
}
}
- inWriter.write("</Folder>\n</kml>");
+ inWriter.write("</Folder>\n</kml>\n");
return numSaved;
}
// Add timestamp (if any) to the list
whenList.append("<when>");
if (point.hasTimestamp()) {
- whenList.append(point.getTimestamp().getText(Timestamp.FORMAT_ISO_8601));
+ whenList.append(point.getTimestamp().getText(Timestamp.Format.ISO8601));
}
whenList.append("</when>\n");
// Add coordinates to the list
throws IOException
{
inWriter.write("\t<Placemark>\n\t\t<name>");
- inWriter.write(inName);
+ inWriter.write(XmlUtils.fixCdata(inName));
inWriter.write("</name>\n");
if (inDesc != null)
{
ImageWriter imageWriter = writers.next();
// Check selection checkbox
- boolean justSelection = _pointTypeSelector.getJustSelection();
+ final boolean justSelection = _pointTypeSelector.getJustSelection();
int selStart = -1, selEnd = -1;
if (justSelection) {
selStart = _trackInfo.getSelection().getStart();
selEnd = _trackInfo.getSelection().getEnd();
}
- int numPoints = _track.getNumPoints();
+ final int numPoints = _track.getNumPoints();
DataPoint point = null;
int photoNum = 0;
// Loop over all points in track
for (int i=0; i<numPoints && !_cancelPressed; i++)
{
point = _track.getPoint(i);
- if (point.getPhoto() != null && (!justSelection || (i>=selStart && i<=selEnd)))
+ if (point.getPhoto() != null && point.getPhoto().isValid() && (!justSelection || (i>=selStart && i<=selEnd)))
{
photoNum++;
// Make a new entry in zip file