Beispiel #1
0
        /// <summary>
        /// 3b. Search for a like named patch if Like Named Patches is selected, on same location.
        /// </summary>
        /// <param name="clipBoardPatch"></param>
        /// <param name="bank"></param>
        /// <param name="sameLocationPatch"></param>
        /// <returns></returns>
        private bool SearchLikeNamedPatch(IClipBoardPatch clipBoardPatch, IBank bank, IPatch sameLocationPatch)
        {
            if (Settings.Default.CopyPaste_PatchDuplicationName == (int)CopyPaste.PatchDuplication.LikeNamedNames)
            {
                if (sameLocationPatch != null)
                {
                    if (sameLocationPatch.IsNameLike(clipBoardPatch.OriginalLocation.Name))
                    {
                        clipBoardPatch.PasteDestination = sameLocationPatch;
                        PcgClipBoard.ProtectedPatches.Add(sameLocationPatch);
                        return(true);
                    }
                }

                // 2b. Search for an identical name patch, on first occurence.
                foreach (var patch in bank.Patches.Where(
                             patch => patch.IsNameLike(clipBoardPatch.OriginalLocation.Name)))
                {
                    clipBoardPatch.PasteDestination = patch;
                    PcgClipBoard.ProtectedPatches.Add(patch);
                    return(true);
                }
            }
            return(false);
        }