public void ReplaceClip(VidkaClip clip, VidkaClip newClip)
{
if (Proj.ClipsVideo.Contains(clip))
{
var vclip = (VidkaClipVideoAbstract)clip;
var vclip2 = (VidkaClipVideoAbstract)newClip;
AddUndableAction_andFireRedo(new UndoableAction
{
Redo = () =>
{
if (Proj.ClipsVideo.ReplaceElement(vclip, vclip2))
UiObjects.SetActiveVideo(vclip2, Proj);
},
Undo = () =>
{
if (Proj.ClipsVideo.ReplaceElement(vclip2, vclip))
UiObjects.SetActiveVideo(vclip, Proj);
},
PostAction = () =>
{
if (UiObjects.CurrentVideoClip is VidkaClipTextSimple)
VidkaIO.RebuildAuxillaryFile_SimpleText((VidkaClipTextSimple)UiObjects.CurrentVideoClip, Proj, MetaGenerator);
if (vclip.IsRenderBreakupPoint != vclip2.IsRenderBreakupPoint)
Fire_ProjectUpdated_AsFarAsMenusAreConcerned();
}
});
}
else if (Proj.ClipsAudio.Contains(clip))
{
var aclip = (VidkaClipAudio)clip;
var aclip2 = (VidkaClipAudio)newClip;
AddUndableAction_andFireRedo(new UndoableAction
{
Redo = () =>
{
if (Proj.ClipsAudio.ReplaceElement(aclip, aclip2))
UiObjects.SetActiveAudio(aclip2);
},
Undo = () =>
{
if (Proj.ClipsAudio.ReplaceElement(aclip2, aclip))
UiObjects.SetActiveAudio(aclip);
},
});
}
//TODO: audio..
}