X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fundo%2FUndoDeleteRange.java;h=da42bc411c892c11814a8daedf135e8f3864aad5;hp=58f09e9c267afd867c104fa316fc058878367b89;hb=326f489e36aa7f235bc19409a57bf4955cd50f24;hpb=8c8868ae29b3252f02e094c02307384cf61ba667 diff --git a/tim/prune/undo/UndoDeleteRange.java b/tim/prune/undo/UndoDeleteRange.java index 58f09e9..da42bc4 100644 --- a/tim/prune/undo/UndoDeleteRange.java +++ b/tim/prune/undo/UndoDeleteRange.java @@ -9,7 +9,7 @@ import tim.prune.data.TrackInfo; /** * Operation to undo a delete of a range of points */ -public class UndoDeleteRange implements UndoOperation +public class UndoDeleteRange extends UndoDeleteOperation { /** * Inner class to hold a single range information set @@ -40,6 +40,14 @@ public class UndoDeleteRange implements UndoOperation { return _startIndex >= 0 && _points != null && _points.length > 0; } + + /** + * @return end index of range + */ + public int getEndIndex() + { + return _startIndex + _points.length - 1; + } } @@ -141,6 +149,13 @@ public class UndoDeleteRange implements UndoOperation // Undo both the ranges performUndo(inTrackInfo, _rangeInfo1); performUndo(inTrackInfo, _rangeInfo2); + // If there's a current point/range selected, maybe need to adjust start and/or end + if (_rangeInfo1 != null && _rangeInfo1.isValid()) { + modifySelection(inTrackInfo, _rangeInfo1._startIndex, _rangeInfo1.getEndIndex()); + } + if (_rangeInfo2 != null && _rangeInfo2.isValid()) { + modifySelection(inTrackInfo, _rangeInfo2._startIndex, _rangeInfo2.getEndIndex()); + } } /**