import tim.prune.App;
import tim.prune.GenericFunction;
import tim.prune.I18nManager;
-import tim.prune.data.AudioFile;
+import tim.prune.data.AudioClip;
import tim.prune.undo.UndoDeleteAudio;
/**
- * Function to remove the currently selected audio file
+ * Function to remove the currently selected audio clip
*/
public class RemoveAudioFunction extends GenericFunction
{
public void begin()
{
// Delete the current audio, and optionally its point too, keeping undo information
- AudioFile currentAudio = _app.getTrackInfo().getCurrentAudio();
+ AudioClip currentAudio = _app.getTrackInfo().getCurrentAudio();
if (currentAudio != null)
{
// Audio is selected, see if it has a point or not
else
{
// point is attached, so need to confirm point deletion
+ final int pointIndex = _app.getTrackInfo().getTrack().getPointIndex(currentAudio.getDataPoint());
undoAction = new UndoDeleteAudio(currentAudio, _app.getTrackInfo().getSelection().getCurrentAudioIndex(),
- currentAudio.getDataPoint(), _app.getTrackInfo().getTrack().getPointIndex(currentAudio.getDataPoint()));
+ currentAudio.getDataPoint(), pointIndex);
+ undoAction.setAtBoundaryOfSelectedRange(pointIndex == _app.getTrackInfo().getSelection().getStart() ||
+ pointIndex == _app.getTrackInfo().getSelection().getEnd());
int response = JOptionPane.showConfirmDialog(_app.getFrame(),
I18nManager.getText("dialog.deleteaudio.deletepoint"),
I18nManager.getText(getNameKey()), JOptionPane.YES_NO_CANCEL_OPTION);
}
// Add undo information to stack if necessary
if (deleted) {
- _app.completeFunction(undoAction, currentAudio.getFile().getName() + " " + I18nManager.getText("confirm.media.removed"));
+ _app.completeFunction(undoAction, currentAudio.getName() + " " + I18nManager.getText("confirm.media.removed"));
}
}
}