private void GeneratePreview() { var fixes = new List <int>(); if (_subtitle == null) { return; } FixedSubtitle = new Subtitle(_subtitle); var onlyFixedSubtitle = new Subtitle(); double minumumMillisecondsBetweenLines = (double)numericUpDownMinMillisecondsBetweenLines.Value; for (int i = 0; i < FixedSubtitle.Paragraphs.Count - 1; i++) { Paragraph p = FixedSubtitle.GetParagraphOrDefault(i); Paragraph next = FixedSubtitle.GetParagraphOrDefault(i + 1); if (next.StartTime.TotalMilliseconds - p.EndTime.TotalMilliseconds < minumumMillisecondsBetweenLines) { p.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds - minumumMillisecondsBetweenLines; fixes.Add(i); onlyFixedSubtitle.Paragraphs.Add(new Paragraph(p)); } } SubtitleListview1.BeginUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.SetMinimumDisplayTimeBetweenParagraphs.PreviewLinesModifiedX, fixes.Count); if (checkBoxShowOnlyChangedLines.Checked) { SubtitleListview1.Fill(onlyFixedSubtitle); } else { SubtitleListview1.Fill(FixedSubtitle); foreach (int index in fixes) { SubtitleListview1.SetBackgroundColor(index, Color.Silver); } } SubtitleListview1.EndUpdate(); FixCount = fixes.Count; }
private void listViewFixes_ItemChecked(object sender, ItemCheckedEventArgs e) { var mergedIndexes = new List <int>(); NumberOfMerges = 0; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); int count; MergedSubtitle = MergeShortLinesInSubtitle(_subtitle, mergedIndexes, out count, (double)numericUpDownMaxMillisecondsBetweenLines.Value, (int)numericUpDownMaxCharacters.Value, false); NumberOfMerges = count; SubtitleListview1.Fill(_subtitle); foreach (var index in mergedIndexes) { SubtitleListview1.SetBackgroundColor(index, ColorTranslator.FromHtml("#6ebe6e")); } SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.MergedShortLines.NumberOfMergesX, NumberOfMerges); }
private bool LoadFinalDraftTemplate(string fileName, Form parentForm) { try { var fd = new FinalDraftTemplate2(); var sub = new Subtitle(); var lines = Encoding.UTF8.GetString(FileUtil.ReadAllBytesShared(fileName)).SplitToLines(); var availableParagraphTypes = fd.GetParagraphTypes(lines); using (var form = new ImportFinalDraft(availableParagraphTypes)) { if (form.ShowDialog(parentForm) == DialogResult.OK) { fd.ActiveParagraphTypes = form.ChosenParagraphTypes; fd.LoadSubtitle(sub, lines, fileName); } else { return(false); } } textBoxText.Text = sub.ToText(fd); _videoFileName = null; Text = Configuration.Settings.Language.ImportText.Title + " - " + fileName; _subtitleInput = sub; Format = new CsvNuendo(); groupBoxSplitting.Enabled = false; textBoxText.Enabled = false; if (_subtitleInput.Paragraphs.Any(p => !string.IsNullOrEmpty(p.Actor))) { SubtitleListview1.ShowActorColumn(Configuration.Settings.Language.General.Character); } } catch (Exception ex) { MessageBox.Show(ex.Message); } radioButtonLineMode.Checked = true; checkBoxMergeShortLines.Checked = false; GeneratePreview(); return(true); }
private void listViewFixes_SelectedIndexChanged(object sender, EventArgs e) { if (listViewFixes.SelectedIndices.Count > 0) { int index = listViewFixes.SelectedIndices[0]; ListViewItem item = listViewFixes.Items[index]; string[] numbers = item.SubItems[1].Text.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string number in numbers) { foreach (Paragraph p in _subtitle.Paragraphs) { if (p.Number.ToString(CultureInfo.InvariantCulture) == number) { index = _subtitle.GetIndex(p); SubtitleListview1.EnsureVisible(index); } } } } }
public ImportUnknownFormat(string fileName) { UiUtil.PreInitialize(this); InitializeComponent(); UiUtil.FixFonts(this); _refreshTimer.Interval = 400; _refreshTimer.Tick += RefreshTimerTick; buttonOK.Text = LanguageSettings.Current.General.Ok; buttonCancel.Text = LanguageSettings.Current.General.Cancel; SubtitleListview1.InitializeLanguage(LanguageSettings.Current.General, Configuration.Settings); UiUtil.InitializeSubtitleFont(SubtitleListview1); SubtitleListview1.AutoSizeAllColumns(this); if (!string.IsNullOrEmpty(fileName)) { LoadTextFile(fileName); GeneratePreview(); } }
private void GeneratePreview() { if (_subtitle == null) { return; } NumberOfMerges = 0; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); MergedSubtitle = MergeLinesWithSameTextInSubtitle(_subtitle, out var count, true, checkBoxIncludeIncrementing.Checked, true, (int)numericUpDownMaxMillisecondsBetweenLines.Value); NumberOfMerges = count; SubtitleListview1.Fill(_subtitle); UpdateBackgroundColor(); SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(LanguageSettings.Current.MergedShortLines.NumberOfMergesX, NumberOfMerges); }
public void Initialize(Subtitle subtitle) { if (subtitle.Paragraphs.Count > 0) { subtitle.Renumber(); } Text = LanguageSettings.Current.MergedShortLines.Title; labelMaxCharacters.Text = LanguageSettings.Current.MergedShortLines.MaximumCharacters; labelMaxMillisecondsBetweenLines.Text = LanguageSettings.Current.MergedShortLines.MaximumMillisecondsBetween; checkBoxOnlyContinuationLines.Text = LanguageSettings.Current.MergedShortLines.OnlyMergeContinuationLines; listViewFixes.Columns[0].Text = LanguageSettings.Current.General.Apply; listViewFixes.Columns[1].Text = LanguageSettings.Current.General.LineNumber; listViewFixes.Columns[2].Text = LanguageSettings.Current.MergedShortLines.MergedText; toolStripMenuItemInverseSelection.Text = LanguageSettings.Current.Main.Menu.Edit.InverseSelection; toolStripMenuItemSelectAll.Text = LanguageSettings.Current.Main.Menu.ContextMenu.SelectAll; buttonOK.Text = LanguageSettings.Current.General.Ok; buttonCancel.Text = LanguageSettings.Current.General.Cancel; SubtitleListview1.InitializeLanguage(LanguageSettings.Current.General, Configuration.Settings); UiUtil.InitializeSubtitleFont(SubtitleListview1); SubtitleListview1.AutoSizeAllColumns(this); NumberOfMerges = 0; if (Configuration.Settings.Tools.MergeShortLinesMaxChars > numericUpDownMaxCharacters.Maximum) { numericUpDownMaxCharacters.Value = numericUpDownMaxCharacters.Maximum; } else if (Configuration.Settings.Tools.MergeShortLinesMaxChars < numericUpDownMaxCharacters.Minimum) { numericUpDownMaxCharacters.Value = numericUpDownMaxCharacters.Minimum; } else { numericUpDownMaxCharacters.Value = Configuration.Settings.Tools.MergeShortLinesMaxChars; } numericUpDownMaxMillisecondsBetweenLines.Value = Configuration.Settings.Tools.MergeShortLinesMaxGap; checkBoxOnlyContinuationLines.Checked = Configuration.Settings.Tools.MergeShortLinesOnlyContinuous; _subtitle = subtitle; }
public DurationsBridgeGaps(Subtitle subtitle) { InitializeComponent(); Utilities.FixLargeFonts(this, buttonOK); Text = Configuration.Settings.Language.DurationsBridgeGaps.Title; buttonOK.Text = Configuration.Settings.Language.General.Ok; buttonCancel.Text = Configuration.Settings.Language.General.Cancel; SubtitleListview1.InitializeLanguage(Configuration.Settings.Language.General, Configuration.Settings); Utilities.InitializeSubtitleFont(SubtitleListview1); SubtitleListview1.ShowExtraColumn(Configuration.Settings.Language.DurationsBridgeGaps.GapToNext); SubtitleListview1.DisplayExtraFromExtra = true; SubtitleListview1.AutoSizeAllColumns(this); labelBridgePart1.Text = Configuration.Settings.Language.DurationsBridgeGaps.BridgeGapsSmallerThanXPart1; numericUpDownMaxMs.Left = labelBridgePart1.Left + labelBridgePart1.Width + 4; labelMilliseconds.Text = Configuration.Settings.Language.DurationsBridgeGaps.BridgeGapsSmallerThanXPart2; labelMilliseconds.Left = numericUpDownMaxMs.Left + numericUpDownMaxMs.Width + 4; labelMinMsBetweenLines.Text = Configuration.Settings.Language.DurationsBridgeGaps.MinMillisecondsBetweenLines; numericUpDownMinMsBetweenLines.Left = labelMinMsBetweenLines.Left + labelMinMsBetweenLines.Width + 4; radioButtonProlongEndTime.Text = Configuration.Settings.Language.DurationsBridgeGaps.ProlongEndTime; radioButtonDivideEven.Text = Configuration.Settings.Language.DurationsBridgeGaps.DivideEven; _subtitle = subtitle; try { numericUpDownMaxMs.Value = Configuration.Settings.Tools.BridgeGapMilliseconds; } catch { numericUpDownMaxMs.Value = 100; } if (Configuration.Settings.General.MinimumMillisecondsBetweenLines >= 1 && Configuration.Settings.General.MinimumMillisecondsBetweenLines <= numericUpDownMinMsBetweenLines.Maximum) { numericUpDownMinMsBetweenLines.Value = Configuration.Settings.General.MinimumMillisecondsBetweenLines; } _refreshTimer.Interval = 400; _refreshTimer.Tick += RefreshTimerTick; GeneratePreview(); }
private void listViewFixes_SelectedIndexChanged(object sender, EventArgs e) { if (listViewFixes.SelectedIndices.Count <= 0) { return; } int index = listViewFixes.SelectedIndices[0]; foreach (var number in _fixItems[index].LineNumbers) { foreach (var p in _subtitle.Paragraphs) { if (p.Number == number) { index = _subtitle.GetIndex(p); SubtitleListview1.EnsureVisible(index); } } } }
private void GeneratePreviewReal() { groupBoxLinesFound.Text = string.Empty; if (_subtitle == null) { return; } Cursor = Cursors.WaitCursor; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); _fixedSubtitle = new Subtitle(_subtitle); _dic = new Dictionary <string, string>(); var fixedIndexes = new List <int>(_fixedSubtitle.Paragraphs.Count); var minMsBetweenLines = (int)numericUpDownMinMsBetweenLines.Value; FixedCount = Core.Forms.DurationsBridgeGaps.BridgeGaps(_fixedSubtitle, minMsBetweenLines, radioButtonDivideEven.Checked, (double)numericUpDownMaxMs.Value, fixedIndexes, _dic); SubtitleListview1.Fill(_fixedSubtitle); for (int i = 0; i < _fixedSubtitle.Paragraphs.Count - 1; i++) { Paragraph cur = _fixedSubtitle.Paragraphs[i]; if (_dic.ContainsKey(cur.ID)) { SubtitleListview1.SetExtraText(i, _dic[cur.ID], SubtitleListview1.ForeColor); } SubtitleListview1.SetBackgroundColor(i, SubtitleListview1.BackColor); } foreach (var index in fixedIndexes) { SubtitleListview1.SetBackgroundColor(index, Color.LightGreen); } SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.DurationsBridgeGaps.GapsBridgedX, FixedCount); Cursor = Cursors.Default; }
private void listViewFixes_ItemChecked(object sender, ItemCheckedEventArgs e) { if (_loading) { return; } var mergedIndexes = new List <int>(); NumberOfMerges = 0; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); _mergedSubtitle = MergeLinesWithSameTextInSubtitle(_subtitle, mergedIndexes, out var count, false, checkBoxIncludeIncrementing.Checked, true, (int)numericUpDownMaxMillisecondsBetweenLines.Value); NumberOfMerges = count; SubtitleListview1.Fill(_subtitle); foreach (var index in mergedIndexes) { SubtitleListview1.SetBackgroundColor(index, Color.Green); } SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.MergedShortLines.NumberOfMergesX, NumberOfMerges); }
private void GeneratePreview() { if (_subtitle == null) { return; } var mergedIndexes = new List <int>(); _fixItems = new List <FixListItem>(); NumberOfMerges = 0; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); MergedSubtitle = MergeLinesWithSameTimeCodes(_subtitle, mergedIndexes, out var count, true, checkBoxAutoBreakOn.Checked, (int)numericUpDownMaxMillisecondsBetweenLines.Value, _language); NumberOfMerges = count; SubtitleListview1.Fill(_subtitle); SetBackgroundColors(); SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(LanguageSettings.Current.MergeTextWithSameTimeCodes.NumberOfMergesX, NumberOfMerges); }
public void Initialize(Subtitle subtitle, string subtitleFileName, string videoFileName, int audioTrackNumber) { Text = Configuration.Settings.Language.PointSync.Title; labelSubtitleFileName.Text = subtitleFileName; _subtitle = new Subtitle(subtitle); _originalSubtitle = subtitle; _subtitleFileName = subtitleFileName; _videoFileName = videoFileName; _audioTrackNumber = audioTrackNumber; SubtitleListview1.Fill(subtitle); if (SubtitleListview1.Items.Count > 0) { SubtitleListview1.Items[0].Selected = true; } SubtitleListview1.Anchor = AnchorStyles.Left; buttonSetSyncPoint.Anchor = AnchorStyles.Left; buttonRemoveSyncPoint.Anchor = AnchorStyles.Left; labelNoOfSyncPoints.Anchor = AnchorStyles.Left; listBoxSyncPoints.Anchor = AnchorStyles.Left; groupBoxImportResult.Anchor = AnchorStyles.Left; labelOtherSubtitleFileName.Visible = false; subtitleListView2.Visible = false; buttonFindTextOther.Visible = false; groupBoxImportResult.Width = listBoxSyncPoints.Left + listBoxSyncPoints.Width + 20; Width = groupBoxImportResult.Left + groupBoxImportResult.Width + 15; SubtitleListview1.Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Right; buttonSetSyncPoint.Anchor = AnchorStyles.Right; buttonRemoveSyncPoint.Anchor = AnchorStyles.Right; labelNoOfSyncPoints.Anchor = AnchorStyles.Right; listBoxSyncPoints.Anchor = AnchorStyles.Right; groupBoxImportResult.Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Right; buttonFindText.Left = SubtitleListview1.Left + SubtitleListview1.Width - buttonFindText.Width; Width = 800; groupBoxImportResult.Width = Width - groupBoxImportResult.Left * 3; labelAdjustFactor.Left = listBoxSyncPoints.Left; labelAdjustFactor.Anchor = listBoxSyncPoints.Anchor; MinimumSize = new Size(Width - 50, MinimumSize.Height); }
private void GeneratePreview() { if (_subtitle == null) { return; } var mergedIndexes = new List <int>(); NumberOfMerges = 0; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); MergedSubtitle = MergeLinesWithSameTimeCodes(_subtitle, mergedIndexes, out var count, true, checkBoxAutoBreakOn.Checked, (int)numericUpDownMaxMillisecondsBetweenLines.Value, _language); NumberOfMerges = count; SubtitleListview1.Fill(_subtitle); foreach (var index in mergedIndexes) { SubtitleListview1.SetBackgroundColor(index, ColorTranslator.FromHtml("#6ebe6e")); } SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.MergeTextWithSameTimeCodes.NumberOfMergesX, NumberOfMerges); }
public SyncPointsSync() { InitializeComponent(); buttonSetSyncPoint.Text = Configuration.Settings.Language.PointSync.SetSyncPoint; buttonRemoveSyncPoint.Text = Configuration.Settings.Language.PointSync.RemoveSyncPoint; buttonOK.Text = Configuration.Settings.Language.General.Ok; buttonApplySync.Text = Configuration.Settings.Language.PointSync.ApplySync; buttonCancel.Text = Configuration.Settings.Language.General.Cancel; labelNoOfSyncPoints.Text = string.Format(Configuration.Settings.Language.PointSync.SyncPointsX, 0); labelSyncInfo.Text = Configuration.Settings.Language.PointSync.Info; buttonFindText.Text = Configuration.Settings.Language.VisualSync.FindText; buttonFindTextOther.Text = Configuration.Settings.Language.VisualSync.FindText; SubtitleListview1.InitializeLanguage(Configuration.Settings.Language.General, Configuration.Settings); subtitleListView2.InitializeLanguage(Configuration.Settings.Language.General, Configuration.Settings); SubtitleListview1.InitializeTimeStampColumWidths(this); subtitleListView2.InitializeTimeStampColumWidths(this); Utilities.InitializeSubtitleFont(SubtitleListview1); Utilities.InitializeSubtitleFont(subtitleListView2); SubtitleListview1.AutoSizeAllColumns(this); subtitleListView2.AutoSizeAllColumns(this); FixLargeFonts(); }
private void SetBackgroundColors() { int colorIdx = 0; var colors = new List <Color> { Color.Green, Color.LimeGreen, Color.GreenYellow, }; foreach (var fixItem in _fixItems.Where(p => p.Checked)) { foreach (var number in fixItem.LineNumbers) { SubtitleListview1.SetBackgroundColor(number - 1, colors[colorIdx]); } colorIdx++; if (colorIdx >= colors.Count) { colorIdx = 0; } } }
public void Initialize(Subtitle subtitle) { if (subtitle.Paragraphs.Count > 0) { subtitle.Renumber(subtitle.Paragraphs[0].Number); } Text = Configuration.Settings.Language.MergeTextWithSameTimeCodes.Title; labelMaxDifferenceMS.Text = Configuration.Settings.Language.MergeTextWithSameTimeCodes.MaxDifferenceMilliseconds; checkBoxAutoBreakOn.Text = Configuration.Settings.Language.MergeTextWithSameTimeCodes.ReBreakLines; listViewFixes.Columns[0].Text = Configuration.Settings.Language.General.Apply; listViewFixes.Columns[1].Text = Configuration.Settings.Language.General.LineNumber; listViewFixes.Columns[2].Text = Configuration.Settings.Language.MergeTextWithSameTimeCodes.MergedText; buttonOK.Text = Configuration.Settings.Language.General.Ok; buttonCancel.Text = Configuration.Settings.Language.General.Cancel; SubtitleListview1.InitializeLanguage(Configuration.Settings.Language.General, Configuration.Settings); UiUtil.InitializeSubtitleFont(SubtitleListview1); SubtitleListview1.AutoSizeAllColumns(this); NumberOfMerges = 0; _subtitle = subtitle; MergeTextWithSameTimeCodes_ResizeEnd(null, null); _language = LanguageAutoDetect.AutoDetectGoogleLanguage(subtitle); }
public ImportText(string fileName = null, Form parentForm = null) { UiUtil.PreInitialize(this); InitializeComponent(); UiUtil.FixFonts(this); Text = Configuration.Settings.Language.ImportText.Title; groupBoxImportText.Text = Configuration.Settings.Language.ImportText.Title; buttonOpenText.Text = Configuration.Settings.Language.ImportText.OpenTextFile; groupBoxImportOptions.Text = Configuration.Settings.Language.ImportText.ImportOptions; groupBoxSplitting.Text = Configuration.Settings.Language.ImportText.Splitting; radioButtonAutoSplit.Text = Configuration.Settings.Language.ImportText.AutoSplitText; radioButtonLineMode.Text = string.Empty; comboBoxLineMode.Items.Clear(); comboBoxLineMode.Items.Add(Configuration.Settings.Language.ImportText.OneLineIsOneSubtitle); comboBoxLineMode.Items.Add(Configuration.Settings.Language.ImportText.TwoLinesAreOneSubtitle); comboBoxLineMode.SelectedIndex = 0; labelLineBreak.Text = Configuration.Settings.Language.ImportText.LineBreak; columnHeaderFName.Text = Configuration.Settings.Language.JoinSubtitles.FileName; columnHeaderSize.Text = Configuration.Settings.Language.General.Size; comboBoxLineBreak.Left = labelLineBreak.Left + labelLineBreak.Width + 3; comboBoxLineBreak.Width = groupBoxSplitting.Width - comboBoxLineBreak.Left - 5; checkBoxMultipleFiles.AutoSize = true; checkBoxMultipleFiles.Left = buttonOpenText.Left - checkBoxMultipleFiles.Width - 9; checkBoxMultipleFiles.Text = Configuration.Settings.Language.ImportText.OneSubtitleIsOneFile; listViewInputFiles.Visible = false; labelSubMaxLen.Text = Configuration.Settings.Language.Settings.SubtitleLineMaximumLength; numericUpDownSubtitleLineMaximumLength.Left = labelSubMaxLen.Left + labelSubMaxLen.Width + 3; radioButtonSplitAtBlankLines.Text = Configuration.Settings.Language.ImportText.SplitAtBlankLines; checkBoxMergeShortLines.Text = Configuration.Settings.Language.ImportText.MergeShortLines; checkBoxRemoveEmptyLines.Text = Configuration.Settings.Language.ImportText.RemoveEmptyLines; checkBoxRemoveLinesWithoutLetters.Text = Configuration.Settings.Language.ImportText.RemoveLinesWithoutLetters; checkBoxAutoSplitRemoveLinesNoLetters.Text = Configuration.Settings.Language.ImportText.RemoveLinesWithoutLetters; checkBoxGenerateTimeCodes.Text = Configuration.Settings.Language.ImportText.GenerateTimeCodes; checkBoxAutoBreak.Text = Configuration.Settings.Language.Settings.MainTextBoxAutoBreak; labelGapBetweenSubtitles.Text = Configuration.Settings.Language.ImportText.GapBetweenSubtitles; numericUpDownGapBetweenLines.Left = labelGapBetweenSubtitles.Left + labelGapBetweenSubtitles.Width + 3; groupBoxDuration.Text = Configuration.Settings.Language.General.Duration; radioButtonDurationAuto.Text = Configuration.Settings.Language.ImportText.Auto; radioButtonDurationFixed.Text = Configuration.Settings.Language.ImportText.Fixed; buttonRefresh.Text = Configuration.Settings.Language.ImportText.Refresh; groupBoxTimeCodes.Text = Configuration.Settings.Language.ImportText.TimeCodes; groupBoxImportResult.Text = Configuration.Settings.Language.General.Preview; clearToolStripMenuItem.Text = Configuration.Settings.Language.DvdSubRip.Clear; startNumberingFromToolStripMenuItem.Text = Configuration.Settings.Language.Main.Menu.Tools.StartNumberingFrom; buttonOK.Text = Configuration.Settings.Language.General.Ok; buttonCancel.Text = Configuration.Settings.Language.General.Cancel; SubtitleListview1.InitializeLanguage(Configuration.Settings.Language.General, Configuration.Settings); UiUtil.InitializeSubtitleFont(SubtitleListview1); SubtitleListview1.AutoSizeAllColumns(this); if (string.IsNullOrEmpty(Configuration.Settings.Tools.ImportTextSplitting)) { radioButtonAutoSplit.Checked = true; } else if (Configuration.Settings.Tools.ImportTextSplitting.Equals("blank lines", StringComparison.OrdinalIgnoreCase)) { radioButtonSplitAtBlankLines.Checked = true; } else if (Configuration.Settings.Tools.ImportTextSplitting.Equals("line", StringComparison.OrdinalIgnoreCase)) { radioButtonLineMode.Checked = true; } comboBoxLineBreak.Text = Configuration.Settings.Tools.ImportTextLineBreak; checkBoxMergeShortLines.Checked = Configuration.Settings.Tools.ImportTextMergeShortLines; checkBoxRemoveEmptyLines.Checked = Configuration.Settings.Tools.ImportTextRemoveEmptyLines; checkBoxAutoSplitAtBlankLines.Checked = Configuration.Settings.Tools.ImportTextAutoSplitAtBlank; checkBoxRemoveLinesWithoutLetters.Checked = Configuration.Settings.Tools.ImportTextRemoveLinesNoLetters; checkBoxAutoSplitRemoveLinesNoLetters.Checked = Configuration.Settings.Tools.ImportTextRemoveLinesNoLetters; checkBoxGenerateTimeCodes.Checked = Configuration.Settings.Tools.ImportTextGenerateTimeCodes; checkBoxAutoBreak.Checked = Configuration.Settings.Tools.ImportTextAutoBreak; textBoxAsEnd.Text = Configuration.Settings.Tools.ImportTextAutoBreakAtEndMarkerText.Replace(" ", string.Empty); checkBoxAutoSplitAtEnd.Checked = Configuration.Settings.Tools.ImportTextAutoBreakAtEnd; checkBoxAutoSplitAtEnd.Text = Configuration.Settings.Language.ImportText.SplitAtEndChars; textBoxAsEnd.Left = checkBoxAutoSplitAtEnd.Left + checkBoxAutoSplitAtEnd.Width; checkBoxAutoSplitAtBlankLines.Text = Configuration.Settings.Language.ImportText.SplitAtBlankLines; groupBoxAutoSplitSettings.Text = Configuration.Settings.Language.Settings.Title; labelAutoSplitNumberOfLines.Text = Configuration.Settings.Language.Settings.MaximumLines; numericUpDownSubtitleLineMaximumLength.Left = labelSubMaxLen.Left + labelSubMaxLen.Width + 3; numericUpDownSubtitleLineMaximumLength.Value = Configuration.Settings.General.SubtitleLineMaximumLength; if (Configuration.Settings.Tools.ImportTextAutoSplitNumberOfLines >= numericUpDownAutoSplitMaxLines.Minimum && Configuration.Settings.Tools.ImportTextAutoSplitNumberOfLines <= numericUpDownAutoSplitMaxLines.Maximum) { numericUpDownAutoSplitMaxLines.Value = Configuration.Settings.Tools.ImportTextAutoSplitNumberOfLines; } if (Configuration.Settings.Tools.ImportTextGap >= numericUpDownGapBetweenLines.Minimum && Configuration.Settings.Tools.ImportTextGap <= numericUpDownGapBetweenLines.Maximum) { numericUpDownGapBetweenLines.Value = Configuration.Settings.Tools.ImportTextGap; } if (Configuration.Settings.Tools.ImportTextDurationAuto) { radioButtonDurationAuto.Checked = true; } else { radioButtonDurationFixed.Checked = true; } numericUpDownDurationFixed.Enabled = radioButtonDurationFixed.Checked; if (Configuration.Settings.Tools.ImportTextFixedDuration >= numericUpDownDurationFixed.Minimum && Configuration.Settings.Tools.ImportTextFixedDuration <= numericUpDownDurationFixed.Maximum) { numericUpDownDurationFixed.Value = Configuration.Settings.Tools.ImportTextFixedDuration; } UiUtil.FixLargeFonts(this, buttonOK); _refreshTimer.Interval = 400; _refreshTimer.Tick += RefreshTimerTick; if (fileName != null && File.Exists(fileName)) { if (!LoadSingleFile(fileName, parentForm)) { _exit = true; } } }
private void labelMaxLineLengthIs_Click(object sender, EventArgs e) { int index = int.Parse(labelMaxLineLengthIs.Tag.ToString()); SubtitleListview1.SelectIndexAndEnsureVisible(index); }
private void SetMinimumDisplayTimeBetweenParagraphs_Shown(object sender, EventArgs e) { SubtitleListview1.Focus(); }
public ImportText() { InitializeComponent(); Text = Configuration.Settings.Language.ImportText.Title; groupBoxImportText.Text = Configuration.Settings.Language.ImportText.Title; buttonOpenText.Text = Configuration.Settings.Language.ImportText.OpenTextFile; groupBoxImportOptions.Text = Configuration.Settings.Language.ImportText.ImportOptions; groupBoxSplitting.Text = Configuration.Settings.Language.ImportText.Splitting; radioButtonAutoSplit.Text = Configuration.Settings.Language.ImportText.AutoSplitText; radioButtonLineMode.Text = Configuration.Settings.Language.ImportText.OneLineIsOneSubtitle; labelLineBreak.Left = radioButtonLineMode.Left + radioButtonLineMode.Width + 10; labelLineBreak.Text = Configuration.Settings.Language.ImportText.LineBreak; columnHeaderFName.Text = Configuration.Settings.Language.JoinSubtitles.FileName; columnHeaderSize.Text = Configuration.Settings.Language.General.Size; comboBoxLineBreak.Left = labelLineBreak.Left + labelLineBreak.Width + 3; comboBoxLineBreak.Width = groupBoxSplitting.Width - comboBoxLineBreak.Left - 5; checkBoxMultipleFiles.AutoSize = true; checkBoxMultipleFiles.Left = buttonOpenText.Left - checkBoxMultipleFiles.Width - 9; checkBoxMultipleFiles.Text = Configuration.Settings.Language.ImportText.OneSubtitleIsOneFile; listViewInputFiles.Visible = false; radioButtonSplitAtBlankLines.Text = Configuration.Settings.Language.ImportText.SplitAtBlankLines; checkBoxMergeShortLines.Text = Configuration.Settings.Language.ImportText.MergeShortLines; checkBoxRemoveEmptyLines.Text = Configuration.Settings.Language.ImportText.RemoveEmptyLines; checkBoxRemoveLinesWithoutLetters.Text = Configuration.Settings.Language.ImportText.RemoveLinesWithoutLetters; checkBoxGenerateTimeCodes.Text = Configuration.Settings.Language.ImportText.GenerateTimeCodes; checkBoxAutoBreak.Text = Configuration.Settings.Language.Settings.MainTextBoxAutoBreak; labelGapBetweenSubtitles.Text = Configuration.Settings.Language.ImportText.GapBetweenSubtitles; numericUpDownGapBetweenLines.Left = labelGapBetweenSubtitles.Left + labelGapBetweenSubtitles.Width + 3; groupBoxDuration.Text = Configuration.Settings.Language.General.Duration; radioButtonDurationAuto.Text = Configuration.Settings.Language.ImportText.Auto; radioButtonDurationFixed.Text = Configuration.Settings.Language.ImportText.Fixed; buttonRefresh.Text = Configuration.Settings.Language.ImportText.Refresh; groupBoxTimeCodes.Text = Configuration.Settings.Language.ImportText.TimeCodes; groupBoxImportResult.Text = Configuration.Settings.Language.General.Preview; buttonOK.Text = Configuration.Settings.Language.General.Ok; buttonCancel.Text = Configuration.Settings.Language.General.Cancel; SubtitleListview1.InitializeLanguage(Configuration.Settings.Language.General, Configuration.Settings); UiUtil.InitializeSubtitleFont(SubtitleListview1); SubtitleListview1.AutoSizeAllColumns(this); if (string.IsNullOrEmpty(Configuration.Settings.Tools.ImportTextSplitting)) { radioButtonAutoSplit.Checked = true; } else if (Configuration.Settings.Tools.ImportTextSplitting.Equals("blank lines", StringComparison.OrdinalIgnoreCase)) { radioButtonSplitAtBlankLines.Checked = true; } else if (Configuration.Settings.Tools.ImportTextSplitting.Equals("line", StringComparison.OrdinalIgnoreCase)) { radioButtonLineMode.Checked = true; } checkBoxMergeShortLines.Checked = Configuration.Settings.Tools.ImportTextMergeShortLines; comboBoxLineBreak.Text = Configuration.Settings.Tools.ImportTextLineBreak; numericUpDownDurationFixed.Enabled = radioButtonDurationFixed.Checked; UiUtil.FixLargeFonts(this, buttonOK); _refreshTimer.Interval = 400; _refreshTimer.Tick += RefreshTimerTick; }
private void GeneratePreview() { if (_subtitle == null) { return; } SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); int count = 0; _fixedSubtitle = new Subtitle(_subtitle); var fixedIndexes = new List <int>(); int minMsBetweenLines = (int)numericUpDownMinMsBetweenLines.Value; for (int i = 0; i < _fixedSubtitle.Paragraphs.Count - 1; i++) { Paragraph cur = _fixedSubtitle.Paragraphs[i]; Paragraph next = _fixedSubtitle.Paragraphs[i + 1]; string before = null; var difMs = Math.Abs(cur.EndTime.TotalMilliseconds - next.StartTime.TotalMilliseconds); if (difMs < (double)numericUpDownMaxMs.Value && difMs > minMsBetweenLines && numericUpDownMaxMs.Value > minMsBetweenLines) { before = string.Format("{0:0.000}", (next.StartTime.TotalMilliseconds - cur.EndTime.TotalMilliseconds) / 1000.0); if (radioButtonDivideEven.Checked && next.StartTime.TotalMilliseconds > cur.EndTime.TotalMilliseconds) { double half = (next.StartTime.TotalMilliseconds - cur.EndTime.TotalMilliseconds) / 2.0; next.StartTime.TotalMilliseconds -= half; } cur.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds - minMsBetweenLines; fixedIndexes.Add(i); fixedIndexes.Add(i + 1); count++; } var msToNext = next.StartTime.TotalMilliseconds - cur.EndTime.TotalMilliseconds; if (msToNext < 2000) { if (!string.IsNullOrEmpty(before)) { cur.Extra = string.Format("{0} => {1:0.000}", before, msToNext / 1000.0); } else { cur.Extra = string.Format("{0:0.000}", msToNext / 1000.0); } } } SubtitleListview1.Fill(_fixedSubtitle); for (int i = 0; i < _fixedSubtitle.Paragraphs.Count - 1; i++) { Paragraph cur = _fixedSubtitle.Paragraphs[i]; SubtitleListview1.SetExtraText(i, cur.Extra, SubtitleListview1.ForeColor); SubtitleListview1.SetBackgroundColor(i, SubtitleListview1.BackColor); } foreach (var index in fixedIndexes) { SubtitleListview1.SetBackgroundColor(index, Color.Green); } SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.DurationsBridgeGaps.GapsBridgedX, count); }
private void DurationsBridgeGaps_Shown(object sender, EventArgs e) { SubtitleListview1.Focus(); }
private void GeneratePreviewReal() { if (_subtitle == null) { return; } Cursor = Cursors.WaitCursor; SubtitleListview1.Items.Clear(); SubtitleListview1.BeginUpdate(); FixedCount = 0; _fixedSubtitle = new Subtitle(_subtitle); _dic = new Dictionary <string, string>(); var fixedIndexes = new List <int>(_fixedSubtitle.Paragraphs.Count); var minMsBetweenLines = (int)numericUpDownMinMsBetweenLines.Value; for (int i = 0; i < _fixedSubtitle.Paragraphs.Count - 1; i++) { Paragraph cur = _fixedSubtitle.Paragraphs[i]; Paragraph next = _fixedSubtitle.Paragraphs[i + 1]; string before = null; var difMs = Math.Abs(cur.EndTime.TotalMilliseconds - next.StartTime.TotalMilliseconds); if (difMs < (double)numericUpDownMaxMs.Value && difMs > minMsBetweenLines && numericUpDownMaxMs.Value > minMsBetweenLines) { before = string.Format("{0:0.000}", (next.StartTime.TotalMilliseconds - cur.EndTime.TotalMilliseconds) / TimeCode.BaseUnit); if (radioButtonDivideEven.Checked && next.StartTime.TotalMilliseconds > cur.EndTime.TotalMilliseconds) { double half = (next.StartTime.TotalMilliseconds - cur.EndTime.TotalMilliseconds) / 2.0; next.StartTime.TotalMilliseconds -= half; } cur.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds - minMsBetweenLines; fixedIndexes.Add(i); fixedIndexes.Add(i + 1); FixedCount++; } var msToNext = next.StartTime.TotalMilliseconds - cur.EndTime.TotalMilliseconds; if (msToNext < 2000) { string info; if (!string.IsNullOrEmpty(before)) { info = string.Format("{0} => {1:0.000}", before, msToNext / TimeCode.BaseUnit); } else { info = string.Format("{0:0.000}", msToNext / TimeCode.BaseUnit); } _dic.Add(cur.ID, info); } } SubtitleListview1.Fill(_fixedSubtitle); for (int i = 0; i < _fixedSubtitle.Paragraphs.Count - 1; i++) { Paragraph cur = _fixedSubtitle.Paragraphs[i]; if (_dic.ContainsKey(cur.ID)) { SubtitleListview1.SetExtraText(i, _dic[cur.ID], SubtitleListview1.ForeColor); } SubtitleListview1.SetBackgroundColor(i, SubtitleListview1.BackColor); } foreach (var index in fixedIndexes) { SubtitleListview1.SetBackgroundColor(index, Color.LightGreen); } SubtitleListview1.EndUpdate(); groupBoxLinesFound.Text = string.Format(Configuration.Settings.Language.DurationsBridgeGaps.GapsBridgedX, FixedCount); Cursor = Cursors.Default; }