X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fundo%2FUndoDeleteRange.java;h=04592aef43de183e7a2908eacf1ec17e9e2f552c;hb=da0b1f449260a0b4a94318006382a9039726ef3e;hp=6bb0b7df08aebc795a9ded8de37871051f71940f;hpb=312fec956e43f5d0a38617da5d0add9c62563e2c;p=GpsPrune.git diff --git a/tim/prune/undo/UndoDeleteRange.java b/tim/prune/undo/UndoDeleteRange.java index 6bb0b7d..04592ae 100644 --- a/tim/prune/undo/UndoDeleteRange.java +++ b/tim/prune/undo/UndoDeleteRange.java @@ -2,6 +2,7 @@ package tim.prune.undo; import tim.prune.I18nManager; import tim.prune.data.DataPoint; +import tim.prune.data.PhotoList; import tim.prune.data.TrackInfo; /** @@ -11,17 +12,18 @@ public class UndoDeleteRange implements UndoOperation { private int _startIndex = -1; private DataPoint[] _points = null; + private PhotoList _photoList = null; /** * Constructor - * @param inIndex index number of point within track - * @param inPoint data point + * @param inTrackInfo track info object */ public UndoDeleteRange(TrackInfo inTrackInfo) { _startIndex = inTrackInfo.getSelection().getStart(); _points = inTrackInfo.cloneSelectedRange(); + _photoList = inTrackInfo.getPhotoList().cloneList(); } @@ -41,6 +43,17 @@ public class UndoDeleteRange implements UndoOperation */ public void performUndo(TrackInfo inTrackInfo) { + // restore photos to how they were before + inTrackInfo.getPhotoList().restore(_photoList); + // reconnect photos to points + for (int i=0; i<_points.length; i++) + { + DataPoint point = _points[i]; + if (point != null && point.getPhoto() != null) + { + point.getPhoto().setDataPoint(point); + } + } // restore point array into track inTrackInfo.getTrack().insertRange(_points, _startIndex); }