Пример #1
0
        private void RegionsAutoSize(Timecode Headroom)
        {
            var Groups = myVegas.GetRegionGroups();

            // check overlapping groups
            var      Overlaps = new List <RegionGroup>();
            Timecode LastEnd  = null;

            foreach (RegionGroup Grp in Groups)
            {
                if (LastEnd != null && Grp.Region.Position < LastEnd)
                {
                    Overlaps.Add(Grp);
                }
                LastEnd = Grp.Region.End;
            }

            if (Overlaps.Count != 0)
            {
                if (MessageBox.Show(
                        "This project contains overlapping / duplicate regions. Autosize would likely screw everything up. Continue anyway?",
                        "Overlaps detected", MessageBoxButtons.YesNo) != DialogResult.Yes)
                {
                    return;
                }
            }

            using (var undo = new UndoBlock("Fit regions to events"))
            {
                foreach (RegionGroup Grp in Groups)
                {
                    if (Grp.Events.Count == 0)
                    {
                        continue;
                    }
                    Grp.Region.Position = Grp.Start - Headroom;
                    Grp.Region.End      = Grp.End + Headroom;
                }
            }
        }