Vidka.Core.EditorLogic.MediaFileDragDrop C# (CSharp) Метод

MediaFileDragDrop() публичный Метод

public MediaFileDragDrop ( string filenames ) : void
filenames string
Результат void
        public void MediaFileDragDrop(string[] filenames)
        {
            ___UiTransactionBegin();
            // TODO: wqrfsawq: this is wrong... dragAndDropMan.Mode should eb Image/Video/Audio, whereas draggy.Mode should be just the timeline
            if (dragAndDropMan.Mode == DragAndDropManagerMode.Video ||
                dragAndDropMan.Mode == DragAndDropManagerMode.Image)
            {
                var vclips = dragAndDropMan.FinalizeDragAndMakeVideoClips();
                int draggyVideoShoveIndex = Dimdim.GetVideoClipDraggyShoveIndex(UiObjects.Draggy);
                var lastActiveVideo = UiObjects.CurrentVideoClip;
                AddUndableAction_andFireRedo(new UndoableAction
                {
                    Redo = () =>
                    {
                        Proj.ClipsVideo.InsertRange(draggyVideoShoveIndex, vclips);
                        UiObjects.SetActiveVideo(vclips.FirstOrDefault(), Proj);
                    },
                    Undo = () =>
                    {
                        Proj.ClipsVideo.RemoveRange(draggyVideoShoveIndex, vclips.Count());
                        UiObjects.SetActiveVideo(lastActiveVideo, Proj);
                    },
                    PostAction = () =>
                    {
                        Proj.Compile();
                        UpdateCanvasWidthFromProjAndDimdim();
                    }
                });
            }
            else if (dragAndDropMan.Mode == DragAndDropManagerMode.Audio)
            {
                var frameDraggyFirst = Dimdim.convert_ScreenX2Frame(UiObjects.Draggy.MouseX - UiObjects.Draggy.MouseXOffset);
                var aclips = dragAndDropMan.FinalizeDragAndMakeAudioClips(frameDraggyFirst);
                var lastActiveVideo = UiObjects.CurrentVideoClip;
                AddUndableAction_andFireRedo(new UndoableAction
                {
                    Redo = () =>
                    {
                        Proj.ClipsAudio.AddRange(aclips);
                        UiObjects.SetActiveAudio(aclips.FirstOrDefault());
                    },
                    Undo = () =>
                    {
                        foreach (var aclip in aclips)
                            Proj.ClipsAudio.Remove(aclip);
                        UiObjects.SetActiveVideo(lastActiveVideo, Proj);
                    },
                    PostAction = () =>
                    {
                        Proj.Compile();
                        UpdateCanvasWidthFromProjAndDimdim();
                    }
                });
            }
            else if (dragAndDropMan.Mode == DragAndDropManagerMode.Folder)
            {
                if (shitbox.ShowConfirmMessage("Recursive generation", "Generate thumbs and meta for this folder and all its subfolders? This will take a long ass while..."))
                {
                    dragAndDropMan.QueueUpTheWholeFolder(dragAndDropMan.OriginalFile);
                }
                dragAndDropMan.FinalizeThisDragDropOp();
            }
            else if (dragAndDropMan.Mode == DragAndDropManagerMode.VidkaProject)
            {
                var proceed = shitbox.ShouldIProceedIfProjectChanged();
                if (!proceed)
                    return;
                LoadProjFromFile(filenames.FirstOrDefault());
                dragAndDropMan.FinalizeThisDragDropOp();
            }
            UiObjects.ClearDraggy();
            ___UiTransactionEnd();
        }
EditorLogic