X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2FApp.java;h=205d88ae11c74165c23bd6aa7ef1fab275af4485;hp=770fd2089aaac23518ecd687bec0f0d8878ee738;hb=4d5796d02a15808311c09448d79e6e7d1de9d636;hpb=f1b92378a792131ac8fb33a869405851d5b2d1f7 diff --git a/tim/prune/App.java b/tim/prune/App.java index 770fd20..205d88a 100644 --- a/tim/prune/App.java +++ b/tim/prune/App.java @@ -62,8 +62,12 @@ public class App private boolean _mangleTimestampsConfirmed = false; private Viewport _viewport = null; private ArrayList _dataFiles = null; - private boolean _firstDataFile = true; + private boolean _autoAppendNextFile = false; private boolean _busyLoading = false; + private AppMode _appMode = AppMode.NORMAL; + + /** Enum for the app mode - currently only two options but may expand later */ + public enum AppMode {NORMAL, DRAWRECT}; /** @@ -123,14 +127,15 @@ public class App if (inDataFiles == null || inDataFiles.size() == 0) { _dataFiles = null; } - else { + else + { _dataFiles = inDataFiles; File f = _dataFiles.get(0); _dataFiles.remove(0); // Start load of specified file if (_fileLoader == null) _fileLoader = new FileLoader(this, _frame); - _firstDataFile = true; + _autoAppendNextFile = false; // prompt for append _fileLoader.openFile(f); } } @@ -144,6 +149,7 @@ public class App { _undoStack.add(inUndo); UpdateMessageBroker.informSubscribers(inConfirmText); + setCurrentMode(AppMode.NORMAL); } /** @@ -272,6 +278,7 @@ public class App DataPoint currentPoint = _trackInfo.getCurrentPoint(); if (currentPoint != null) { + // Check for photo boolean deletePhoto = false; Photo currentPhoto = currentPoint.getPhoto(); if (currentPhoto != null) @@ -291,10 +298,11 @@ public class App // store necessary information to undo it later int pointIndex = _trackInfo.getSelection().getCurrentPointIndex(); int photoIndex = _trackInfo.getPhotoList().getPhotoIndex(currentPhoto); + int audioIndex = _trackInfo.getAudioList().getAudioIndex(currentPoint.getAudio()); DataPoint nextTrackPoint = _trackInfo.getTrack().getNextTrackPoint(pointIndex + 1); // Construct Undo object UndoOperation undo = new UndoDeletePoint(pointIndex, currentPoint, photoIndex, - nextTrackPoint != null && nextTrackPoint.getSegmentStart()); + audioIndex, nextTrackPoint != null && nextTrackPoint.getSegmentStart()); // call track to delete point if (_trackInfo.deletePoint()) { @@ -312,94 +320,15 @@ public class App // decouple photo from point currentPhoto.setDataPoint(null); } - UpdateMessageBroker.informSubscribers(); + UpdateMessageBroker.informSubscribers(DataSubscriber.PHOTOS_MODIFIED); } - // Confirm - UpdateMessageBroker.informSubscribers(I18nManager.getText("confirm.deletepoint.single")); - } - } - } - - - /** - * Delete the currently selected range - */ - public void deleteSelectedRange() - { - if (_track == null) return; - // Find out if photos should be deleted or not - int selStart = _trackInfo.getSelection().getStart(); - int selEnd = _trackInfo.getSelection().getEnd(); - if (selStart >= 0 && selEnd >= selStart) - { - int numToDelete = selEnd - selStart + 1; - boolean[] deletePhotos = new boolean[numToDelete]; - Photo[] photosToDelete = new Photo[numToDelete]; - boolean deleteAll = false; - boolean deleteNone = false; - String[] questionOptions = {I18nManager.getText("button.yes"), I18nManager.getText("button.no"), - I18nManager.getText("button.yestoall"), I18nManager.getText("button.notoall"), - I18nManager.getText("button.cancel")}; - DataPoint point = null; - for (int i=0; i -1) { + _trackInfo.getAudioList().deleteAudio(audioIndex); } - } - // add information to undo stack - UndoDeleteRange undo = new UndoDeleteRange(_trackInfo); - // delete requested photos - for (int i=0; i