]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/save/FileSaver.java
Version 14, October 2012
[GpsPrune.git] / tim / prune / save / FileSaver.java
index 78fbe3e5d38e49cecc98fee01b360c27e0b154b0..6be44eb80bc3eb6beb828f0270db15c75255954e 100644 (file)
@@ -40,6 +40,7 @@ import tim.prune.data.Coordinate;
 import tim.prune.data.DataPoint;
 import tim.prune.data.Field;
 import tim.prune.data.FieldList;
+import tim.prune.data.RecentFile;
 import tim.prune.data.Timestamp;
 import tim.prune.data.Track;
 import tim.prune.load.GenericFileFilter;
@@ -500,8 +501,9 @@ public class FileSaver
                                {
                                        DataPoint point = track.getPoint(p);
                                        boolean savePoint = ((point.isWaypoint() && _pointTypeSelector.getWaypointsSelected())
-                                               || (!point.isWaypoint() && point.getPhoto()==null && _pointTypeSelector.getTrackpointsSelected())
-                                               || (!point.isWaypoint() && point.getPhoto()!=null && _pointTypeSelector.getPhotopointsSelected()))
+                                               || (!point.isWaypoint() && !point.hasMedia() && _pointTypeSelector.getTrackpointsSelected())
+                                               || (!point.isWaypoint() && point.getPhoto()!=null && _pointTypeSelector.getPhotopointsSelected())
+                                               || (!point.isWaypoint() && point.getAudio()!=null && _pointTypeSelector.getAudiopointsSelected()))
                                                && (!_pointTypeSelector.getJustSelection() || (p>=selStart && p<=selEnd));
                                        if (!savePoint) {continue;}
                                        numSaved++;
@@ -512,9 +514,8 @@ public class FileSaver
                                                info = _model.getFieldInfo(f);
                                                if (info.isSelected())
                                                {
-                                                       if (!firstField)
-                                                       {
-                                                               // output field separator
+                                                       // output field separator
+                                                       if (!firstField) {
                                                                buffer.append(delimiter);
                                                        }
                                                        saveField(buffer, point, info.getField(), coordFormat, altitudeFormat, timestampFormat);
@@ -527,7 +528,10 @@ public class FileSaver
                                }
                                // Store directory in config for later
                                Config.setConfigString(Config.KEY_TRACK_DIR, saveFile.getParentFile().getAbsolutePath());
+                               // Add to recent file list
+                               Config.getRecentFileList().addFile(new RecentFile(inSaveFile, true));
                                // Save successful
+                               UpdateMessageBroker.informSubscribers();
                                UpdateMessageBroker.informSubscribers(I18nManager.getText("confirm.save.ok1")
                                         + " " + numSaved + " " + I18nManager.getText("confirm.save.ok2")
                                         + " " + saveFile.getAbsolutePath());
@@ -592,7 +596,7 @@ public class FileSaver
                        {
                                if (inTimestampFormat == Timestamp.FORMAT_ORIGINAL) {
                                        // output original string
-                                       inBuffer.append(inPoint.getFieldValue(Field.TIMESTAMP));
+                                       inBuffer.append(inPoint.getTimestamp().getText(Timestamp.FORMAT_ORIGINAL));
                                }
                                else {
                                        // format value accordingly