diff --git a/src/Controls/SubtitleListView.cs b/src/Controls/SubtitleListView.cs index 45e16c716..617813830 100644 --- a/src/Controls/SubtitleListView.cs +++ b/src/Controls/SubtitleListView.cs @@ -361,7 +361,7 @@ namespace Nikse.SubtitleEdit.Controls int i = 0; foreach (Paragraph paragraph in paragraphs) { - Add(paragraph, i.ToString(CultureInfo.InvariantCulture)); + Add(paragraph); if (DisplayExtraFromExtra && IsExtraColumnVisible && Items[i].SubItems.Count > ColumnIndexExtra) Items[i].SubItems[ColumnIndexExtra].Text = paragraph.Extra; SyntaxColorLine(paragraphs, i, paragraph); @@ -385,7 +385,7 @@ namespace Nikse.SubtitleEdit.Controls int i = 0; foreach (Paragraph paragraph in paragraphs) { - Add(paragraph, i.ToString(CultureInfo.InvariantCulture)); + Add(paragraph); Paragraph alternate = Utilities.GetOriginalParagraph(i, paragraph, paragraphsAlternate); if (alternate != null) SetAlternateText(i, alternate.Text); @@ -492,9 +492,9 @@ namespace Nikse.SubtitleEdit.Controls } } - private void Add(Paragraph paragraph, string tag) + private void Add(Paragraph paragraph) { - var item = new ListViewItem(paragraph.Number.ToString()) {Tag = tag}; + var item = new ListViewItem(paragraph.Number.ToString()) {Tag = paragraph }; ListViewItem.ListViewSubItem subItem; if (Configuration.Settings != null && Configuration.Settings.General.UseTimeFormatHHMMSSFF) diff --git a/src/Forms/FixCommonErrors.cs b/src/Forms/FixCommonErrors.cs index 5ca7cd808..0142e6f38 100644 --- a/src/Forms/FixCommonErrors.cs +++ b/src/Forms/FixCommonErrors.cs @@ -4563,24 +4563,24 @@ namespace Nikse.SubtitleEdit.Forms if (listViewFixes.SelectedItems.Count > 0) { var p = (Paragraph)listViewFixes.SelectedItems[0].Tag; - int index = _originalSubtitle.GetIndex(p); - if (index >= 0) - { - for (int i = 0; i < index; i++) - { - if (_deleteIndices.Contains(i)) - index++; - } - if (index >= 0 && index < subtitleListView1.Items.Count) + int index = -1; + foreach (ListViewItem lvi in subtitleListView1.Items) + { + Paragraph p2 = lvi.Tag as Paragraph; + if (p.ID == p2.ID) { + index = lvi.Index; if (index - 1 > 0) subtitleListView1.EnsureVisible(index - 1); if (index + 1 < subtitleListView1.Items.Count) subtitleListView1.EnsureVisible(index + 1); + subtitleListView1.SelectedIndexChanged -= SubtitleListView1SelectedIndexChanged; subtitleListView1.SelectNone(); + subtitleListView1.SelectedIndexChanged += SubtitleListView1SelectedIndexChanged; subtitleListView1.Items[index].Selected = true; subtitleListView1.EnsureVisible(index); + return; } } } diff --git a/src/Logic/Subtitle.cs b/src/Logic/Subtitle.cs index 9d15eec0a..6b491ed36 100644 --- a/src/Logic/Subtitle.cs +++ b/src/Logic/Subtitle.cs @@ -402,6 +402,10 @@ namespace Nikse.SubtitleEdit.Logic for (int i = 0; i < _paragraphs.Count; i++) { + if (p.ID == _paragraphs[i].ID) + return i; + if (i < _paragraphs.Count -1 && p.ID == _paragraphs[i + 1].ID) + return i+1; if (p.StartTime.TotalMilliseconds == _paragraphs[i].StartTime.TotalMilliseconds && p.EndTime.TotalMilliseconds == _paragraphs[i].EndTime.TotalMilliseconds) return i;