X-Git-Url: https://gitweb.fperrin.net/?a=blobdiff_plain;ds=sidebyside;f=tim%2Fprune%2Fdata%2FTrackInfo.java;h=2b5b67d23a4343ff9534278dbb9a94767ccf7937;hb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465;hp=58344142d390faf734df76edbf8fc557d5649c8e;hpb=649c5da6ee1bbc590699e11a92316ece2ea8512d;p=GpsPrune.git diff --git a/tim/prune/data/TrackInfo.java b/tim/prune/data/TrackInfo.java index 5834414..2b5b67d 100644 --- a/tim/prune/data/TrackInfo.java +++ b/tim/prune/data/TrackInfo.java @@ -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);