Make "sort by" more consistant - thx Skrity :)

Fix #2535
This commit is contained in:
Nikolaj Olsson 2017-08-29 19:46:50 +02:00
parent 69dc0c2819
commit 89759c5edd

View File

@ -528,37 +528,37 @@ namespace Nikse.SubtitleEdit.Core
switch (sortCriteria) switch (sortCriteria)
{ {
case SubtitleSortCriteria.Number: case SubtitleSortCriteria.Number:
_paragraphs.Sort((p1, p2) => p1.Number.CompareTo(p2.Number)); _paragraphs = _paragraphs.OrderBy(p => p.Number).ThenBy(p => p.StartTime.TotalMilliseconds).ToList();
break; break;
case SubtitleSortCriteria.StartTime: case SubtitleSortCriteria.StartTime:
_paragraphs.Sort((p1, p2) => p1.StartTime.TotalMilliseconds.CompareTo(p2.StartTime.TotalMilliseconds)); _paragraphs = _paragraphs.OrderBy(p=>p.StartTime.TotalMilliseconds).ThenBy(p=>p.Number).ToList();
break; break;
case SubtitleSortCriteria.EndTime: case SubtitleSortCriteria.EndTime:
_paragraphs.Sort((p1, p2) => p1.EndTime.TotalMilliseconds.CompareTo(p2.EndTime.TotalMilliseconds)); _paragraphs = _paragraphs.OrderBy(p => p.EndTime.TotalMilliseconds).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.Duration: case SubtitleSortCriteria.Duration:
_paragraphs.Sort((p1, p2) => p1.Duration.TotalMilliseconds.CompareTo(p2.Duration.TotalMilliseconds)); _paragraphs = _paragraphs.OrderBy(p => p.Duration.TotalMilliseconds).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.Text: case SubtitleSortCriteria.Text:
_paragraphs.Sort((p1, p2) => string.Compare(p1.Text, p2.Text, StringComparison.Ordinal)); _paragraphs = _paragraphs.OrderBy(p => p.Text, StringComparer.Ordinal).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.TextMaxLineLength: case SubtitleSortCriteria.TextMaxLineLength:
_paragraphs.Sort((p1, p2) => Utilities.GetMaxLineLength(p1.Text).CompareTo(Utilities.GetMaxLineLength(p2.Text))); _paragraphs = _paragraphs.OrderBy(p => Utilities.GetMaxLineLength(p.Text)).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.TextTotalLength: case SubtitleSortCriteria.TextTotalLength:
_paragraphs.Sort((p1, p2) => p1.Text.Length.CompareTo(p2.Text.Length)); _paragraphs = _paragraphs.OrderBy(p => p.Text.Length).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.TextNumberOfLines: case SubtitleSortCriteria.TextNumberOfLines:
_paragraphs.Sort((p1, p2) => p1.NumberOfLines.CompareTo(p2.NumberOfLines)); _paragraphs = _paragraphs.OrderBy(p => p.NumberOfLines).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.TextCharactersPerSeconds: case SubtitleSortCriteria.TextCharactersPerSeconds:
_paragraphs.Sort((p1, p2) => Utilities.GetCharactersPerSecond(p1).CompareTo(Utilities.GetCharactersPerSecond(p2))); _paragraphs = _paragraphs.OrderBy(Utilities.GetCharactersPerSecond).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.WordsPerMinute: case SubtitleSortCriteria.WordsPerMinute:
_paragraphs.Sort((p1, p2) => p1.WordsPerMinute.CompareTo(p2.WordsPerMinute)); _paragraphs = _paragraphs.OrderBy(p => p.WordsPerMinute).ThenBy(p => p.Number).ToList();
break; break;
case SubtitleSortCriteria.Style: case SubtitleSortCriteria.Style:
_paragraphs.Sort((p1, p2) => string.Compare(p1.Extra, p2.Extra, StringComparison.Ordinal)); _paragraphs = _paragraphs.OrderBy(p => p.Extra, StringComparer.Ordinal).ThenBy(p => p.Number).ToList();
break; break;
} }
} }