X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Ffunction%2FDisconnectAudioFunction.java;fp=src%2Ftim%2Fprune%2Ffunction%2FDisconnectAudioFunction.java;h=962da710a2a0ff65cf8e965c1dc8886f0c989a48;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/function/DisconnectAudioFunction.java b/src/tim/prune/function/DisconnectAudioFunction.java new file mode 100644 index 0000000..962da71 --- /dev/null +++ b/src/tim/prune/function/DisconnectAudioFunction.java @@ -0,0 +1,48 @@ +package tim.prune.function; + +import tim.prune.App; +import tim.prune.DataSubscriber; +import tim.prune.GenericFunction; +import tim.prune.I18nManager; +import tim.prune.UpdateMessageBroker; +import tim.prune.data.AudioClip; +import tim.prune.data.DataPoint; +import tim.prune.undo.UndoDisconnectMedia; +import tim.prune.undo.UndoOperation; + +/** + * Function to disconnect the current audio object from the current point (like DisconnectPhotoFunction) + */ +public class DisconnectAudioFunction extends GenericFunction +{ + /** + * Constructor + * @param inApp app object + */ + public DisconnectAudioFunction(App inApp) { + super(inApp); + } + + /** @return name key */ + public String getNameKey() { + return "function.disconnectfrompoint"; + } + + /** + * Perform the operation + */ + public void begin() + { + AudioClip audio = _app.getTrackInfo().getCurrentAudio(); + if (audio != null && audio.getDataPoint() != null) + { + DataPoint point = audio.getDataPoint(); + UndoOperation undo = new UndoDisconnectMedia(point, false, true, audio.getName()); + // disconnect + audio.setDataPoint(null); + point.setAudio(null); + UpdateMessageBroker.informSubscribers(DataSubscriber.SELECTION_CHANGED); + _app.completeFunction(undo, I18nManager.getText("confirm.audio.disconnect")); + } + } +}