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;
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
 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();
            }
        }
示例#6
0
        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);
        }
示例#7
0
        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;
        }
示例#8
0
        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();
        }
示例#9
0
        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);
                    }
                }
            }
        }
示例#10
0
        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;
        }
示例#11
0
        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);
        }
示例#12
0
        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);
        }
示例#13
0
        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);
        }
示例#14
0
        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);
        }
示例#15
0
        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();
        }
示例#16
0
        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;
                }
            }
        }
示例#17
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);
        }
示例#18
0
        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;
                }
            }
        }
示例#19
0
        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();
 }
示例#21
0
        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;
        }
示例#22
0
        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;
        }