]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/data/TrackInfo.java
Version 19.2, December 2018
[GpsPrune.git] / tim / prune / data / TrackInfo.java
index 58344142d390faf734df76edbf8fc557d5649c8e..2b5b67d23a4343ff9534278dbb9a94767ccf7937 100644 (file)
@@ -184,21 +184,6 @@ public class TrackInfo
                return numAudiosAdded;
        }
 
-       /**
-        * Delete the currently selected range of points
-        * @return true if successful
-        */
-       public boolean deleteRange()
-       {
-               int startSel = _selection.getStart();
-               int endSel = _selection.getEnd();
-               boolean answer = _track.deleteRange(startSel, endSel);
-               // clear range selection
-               _selection.modifyRangeDeleted();
-               return answer;
-       }
-
-
        /**
         * Delete the currently selected point
         * @return true if point deleted
@@ -287,12 +272,14 @@ public class TrackInfo
 
        /**
         * Delete all the points which have been marked for deletion
+        * @param inSplitSegments true to split segments at deleted points
         * @return number of points deleted
         */
-       public int deleteMarkedPoints()
+       public int deleteMarkedPoints(boolean inSplitSegments)
        {
-               int numDeleted = _track.deleteMarkedPoints();
-               if (numDeleted > 0) {
+               int numDeleted = _track.deleteMarkedPoints(inSplitSegments);
+               if (numDeleted > 0)
+               {
                        _selection.clearAll();
                        UpdateMessageBroker.informSubscribers();
                }
@@ -319,7 +306,8 @@ public class TrackInfo
        {
                boolean firstTrackPoint = true;
                // Loop between start and end
-               for (int i=inStart; i<=inEnd; i++) {
+               for (int i=inStart; i<=inEnd; i++)
+               {
                        DataPoint point = _track.getPoint(i);
                        // Set all segments to false apart from first track point
                        if (point != null && !point.isWaypoint()) {
@@ -329,26 +317,14 @@ public class TrackInfo
                }
                // Find following track point, if any
                DataPoint nextPoint = _track.getNextTrackPoint(inEnd+1);
-               if (nextPoint != null) {nextPoint.setSegmentStart(true);}
+               if (nextPoint != null) {
+                       nextPoint.setSegmentStart(true);
+               }
                _selection.markInvalid();
                UpdateMessageBroker.informSubscribers();
                return true;
        }
 
-       /**
-        * Interpolate extra points between two selected ones
-        * @param inNumPoints num points to insert
-        * @return true if successful
-        */
-       public boolean interpolate(int inNumPoints)
-       {
-               boolean success = _track.interpolate(_selection.getStart(), inNumPoints);
-               if (success) {
-                       _selection.selectRangeEnd(_selection.getEnd() + inNumPoints);
-               }
-               return success;
-       }
-
 
        /**
         * Average selected points to create a new one
@@ -380,8 +356,10 @@ public class TrackInfo
        public void incrementPointIndex(int inPointIncrement)
        {
                int index = _selection.getCurrentPointIndex() + inPointIncrement;
-               if (index < 0) index = 0;
-               else if (index >= _track.getNumPoints()) index = _track.getNumPoints()-1;
+               if (index < 0)
+                       index = 0;
+               else if (index >= _track.getNumPoints())
+                       index = _track.getNumPoints()-1;
                selectPoint(index);
        }
 
@@ -391,7 +369,9 @@ public class TrackInfo
         */
        public void selectPoint(int inPointIndex)
        {
-               if (_selection.getCurrentPointIndex() == inPointIndex || inPointIndex >= _track.getNumPoints()) {return;}
+               if (_selection.getCurrentPointIndex() == inPointIndex || inPointIndex >= _track.getNumPoints()) {
+                       return;
+               }
                DataPoint selectedPoint = _track.getPoint(inPointIndex);
                // get the index of the current photo
                int photoIndex = _selection.getCurrentPhotoIndex();
@@ -424,7 +404,9 @@ public class TrackInfo
         */
        public void selectPhoto(int inPhotoIndex)
        {
-               if (_selection.getCurrentPhotoIndex() == inPhotoIndex) {return;}
+               if (_selection.getCurrentPhotoIndex() == inPhotoIndex) {
+                       return;
+               }
                // Photo is primary selection here, not as a result of a point selection
                // Therefore the photo selection takes priority, deselecting point if necessary
                // Find Photo object
@@ -453,11 +435,15 @@ public class TrackInfo
                // Has the new point got an audio clip?
                DataPoint selectedPoint = _track.getPoint(pointIndex);
                int audioIndex = _selection.getCurrentAudioIndex();
-               if (selectedPoint != null) {
-                       if (selectedPoint.getAudio() != null) audioIndex = _audioList.getAudioIndex(selectedPoint.getAudio());
+               if (selectedPoint != null && selectedPoint.getAudio() != null)
+               {
+                       // New point has an audio, so select it
+                       audioIndex = _audioList.getAudioIndex(selectedPoint.getAudio());
                }
-               else {
-                       if (selectedPoint != currPoint && currPoint.getAudio() != null) {audioIndex = -1;}
+               else if (currPoint != null && selectedPoint != currPoint && currPoint.getAudio() != null)
+               {
+                       // Old point had an audio, so deselect it
+                       audioIndex = -1;
                }
                // give to selection object
                _selection.selectPointPhotoAudio(pointIndex, inPhotoIndex, audioIndex);
@@ -469,7 +455,9 @@ public class TrackInfo
         */
        public void selectAudio(int inAudioIndex)
        {
-               if (_selection.getCurrentAudioIndex() == inAudioIndex) {return;}
+               if (_selection.getCurrentAudioIndex() == inAudioIndex) {
+                       return;
+               }
                // Audio selection takes priority, deselecting point if necessary
                AudioClip audio = _audioList.getAudio(inAudioIndex);
                int pointIndex = _selection.getCurrentPointIndex();
@@ -496,11 +484,13 @@ public class TrackInfo
                // Has the new point got a photo?
                DataPoint selectedPoint = _track.getPoint(pointIndex);
                int photoIndex = _selection.getCurrentPhotoIndex();
-               if (selectedPoint != null) {
-                       if (selectedPoint.getPhoto() != null) photoIndex = _photoList.getPhotoIndex(selectedPoint.getPhoto());
+               if (selectedPoint != null && selectedPoint.getPhoto() != null) {
+                       // New point has a photo, so select it
+                       photoIndex = _photoList.getPhotoIndex(selectedPoint.getPhoto());
                }
-               else {
-                       if (selectedPoint != currPoint && currPoint.getPhoto() != null) {photoIndex = -1;}
+               else if (currPoint != null && selectedPoint != currPoint && currPoint.getPhoto() != null) {
+                       // Old point had a photo, so deselect it
+                       photoIndex = -1;
                }
                // give to selection object
                _selection.selectPointPhotoAudio(pointIndex, photoIndex, inAudioIndex);