Vidka.Core.EditorLogic.ReplaceClip C# (CSharp) Method

ReplaceClip() public method

public ReplaceClip ( VidkaClip clip, VidkaClip newClip ) : void
clip Vidka.Core.Model.VidkaClip
newClip Vidka.Core.Model.VidkaClip
return void
        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..
        }
EditorLogic