Esempio n. 1
0
        FileInfo MergeText(Merge merge, MergeSource source1, MergeSource source2, bool isBundled)
        {
            ProgressInfo.CurrentAction = $"Merging {source1.Name} && {source2.Name} — waiting for KDiff3 to close";

            var exitCode = KDiff3.Run(source1, source2, _vanillaFile, _outputPath, !isBundled);

            if (exitCode == 0)
            {
                if (!source1.TextFile.FullName.EqualsIgnoreCase(_outputPath) &&
                    !source1.TextFile.FullName.StartsWithIgnoreCase(Paths.MergedBundleContentAbsolute))
                {
                    _inventory.AddModToMerge(source1, merge);
                }

                if (!source2.TextFile.FullName.EqualsIgnoreCase(_outputPath) &&
                    !source2.TextFile.FullName.StartsWithIgnoreCase(Paths.MergedBundleContentAbsolute))
                {
                    _inventory.AddModToMerge(source2, merge);
                }

                if (Program.Settings.Get <bool>("PlayCompletionSounds"))
                {
                    System.Media.SystemSounds.Asterisk.Play();
                }
                if (Program.Settings.Get <bool>("ReportAfterMerge"))
                {
                    using (var reportForm = new MergeReportForm(
                               ProgressInfo.CurrentMergeNum, ProgressInfo.TotalMergeCount,
                               source1.TextFile.FullName, source2.TextFile.FullName, _outputPath,
                               source1.Name, source2.Name))
                    {
                        ProgressInfo.CurrentAction = "Showing merge report";
                        Program.MainForm.ShowModal(reportForm);
                    }
                }
                return(new FileInfo(_outputPath));
            }
            else
            {
                return(null);
            }
        }