void DoThreadWork(object sender, DoWorkEventArgs e) { ThreadDoWorkParameter p = (ThreadDoWorkParameter)e.Argument; if (p.FixCommonErrors) { try { var fixCommonErrors = new FixCommonErrors(); fixCommonErrors.RunBatch(p.Subtitle, p.Format, p.Encoding, Configuration.Settings.Tools.BatchConvertLanguage); p.Subtitle = fixCommonErrors.FixedSubtitle; fixCommonErrors = new FixCommonErrors(); fixCommonErrors.RunBatch(p.Subtitle, p.Format, p.Encoding, Configuration.Settings.Tools.BatchConvertLanguage); p.Subtitle = fixCommonErrors.FixedSubtitle; } catch (Exception exception) { p.Error = "FCE ERROR: " + exception.Message; } } if (p.MultipleReplaceActive) { try { var form = new MultipleReplace(); form.Initialize(p.Subtitle); p.Subtitle = form.FixedSubtitle; } catch (Exception exception) { p.Error = "MultipleReplace error: " + exception.Message; } } if (p.SplitLongLinesActive) { try { p.Subtitle = Logic.Forms.SplitLongLinesHelper.SplitLongLinesInSubtitle(p.Subtitle, Configuration.Settings.General.SubtitleLineMaximumLength * 2, Configuration.Settings.General.SubtitleLineMaximumLength); } catch (Exception exception) { p.Error = "AutoBalance error: " + exception.Message; } } if (p.AutoBalanceActive) { try { foreach (Paragraph paragraph in p.Subtitle.Paragraphs) paragraph.Text = Utilities.AutoBreakLine(paragraph.Text); } catch (Exception exception) { p.Error = "AutoBalance error: " + exception.Message; } } if (p.SetMinDisplayTimeBetweenSubtitles) { double minumumMillisecondsBetweenLines = Configuration.Settings.General.MininumMillisecondsBetweenLines; for (int i = 0; i < p.Subtitle.Paragraphs.Count - 1; i++) { Paragraph current = p.Subtitle.GetParagraphOrDefault(i); Paragraph next = p.Subtitle.GetParagraphOrDefault(i + 1); if (next.StartTime.TotalMilliseconds - current.EndTime.TotalMilliseconds < minumumMillisecondsBetweenLines) current.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds - minumumMillisecondsBetweenLines; } } e.Result = p; }
private void MultipleReplaceToolStripMenuItemClick(object sender, EventArgs e) { using (var multipleReplace = new MultipleReplace()) { multipleReplace.Initialize(_subtitle); if (multipleReplace.ShowDialog(this) == DialogResult.OK) { MakeHistoryForUndo(_language.BeforeMultipleReplace); SaveSubtitleListviewIndices(); for (int i = 0; i < _subtitle.Paragraphs.Count; i++) { _subtitle.Paragraphs[i].Text = multipleReplace.FixedSubtitle.Paragraphs[i].Text; } _subtitle.RemoveParagraphsByIndices(multipleReplace.DeleteIndices); _subtitle.Renumber(); SubtitleListview1.Fill(_subtitle, _subtitleAlternate); RestoreSubtitleListviewIndices(); RefreshSelectedParagraph(); ShowSource(); ShowStatus(string.Format(_language.NumberOfLinesReplacedX, multipleReplace.FixCount)); } } }
private void buttonMultipleReplaceSettings_Click(object sender, EventArgs e) { var form = new MultipleReplace(); form.Initialize(new Subtitle()); form.ShowDialog(this); }