X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fundo%2FUndoDeleteRange.java;h=4e526cd8193d99b5c73154d3326ff2c2a0f6b904;hp=6bb0b7df08aebc795a9ded8de37871051f71940f;hb=5625a1abadb5f2ca5f017fe7dbda1d5141cb637b;hpb=23959e65a6a0d581e657b07186d18b7a1ac5afeb diff --git a/tim/prune/undo/UndoDeleteRange.java b/tim/prune/undo/UndoDeleteRange.java index 6bb0b7d..4e526cd 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,6 +12,7 @@ public class UndoDeleteRange implements UndoOperation { private int _startIndex = -1; private DataPoint[] _points = null; + private PhotoList _photoList = null; /** @@ -22,6 +24,7 @@ public class UndoDeleteRange implements UndoOperation { _startIndex = inTrackInfo.getSelection().getStart(); _points = inTrackInfo.cloneSelectedRange(); + _photoList = inTrackInfo.getPhotoList().cloneList(); } @@ -41,6 +44,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); }