public string UndoHistory(int index, out string subtitleFormatFriendlyName, out DateTime fileModified, out Subtitle originalSubtitle, out string originalSubtitleFileName) { Paragraphs.Clear(); foreach (var p in HistoryItems[index].Subtitle.Paragraphs) { Paragraphs.Add(new Paragraph(p)); } subtitleFormatFriendlyName = HistoryItems[index].SubtitleFormatFriendlyName; FileName = HistoryItems[index].FileName; fileModified = HistoryItems[index].FileModified; originalSubtitle = new Subtitle(HistoryItems[index].OriginalSubtitle); originalSubtitleFileName = HistoryItems[index].OriginalSubtitleFileName; Header = HistoryItems[index].Subtitle.Header; return(FileName); }
public Subtitle AutoGuessImport(List <string> lines) { var sb = new StringBuilder(); foreach (string s in lines) { sb.Append(s); } var allText = sb.ToString().Trim(); if (!allText.Contains("{", StringComparison.Ordinal)) { return(new Subtitle()); } var subtitle1 = new Subtitle(); try { int count = 0; foreach (string line in allText.Split('{', '}', '[', ']')) { count++; ReadParagraph(line, subtitle1); if (count > 20 && subtitle1.Paragraphs.Count == 0) { break; } } } catch { // ignored } var subtitle2 = new Subtitle(); try { int count = 0; foreach (string line in allText.Split('{', '}')) { count++; ReadParagraph(line, subtitle2); if (count > 20 && subtitle2.Paragraphs.Count == 0) { break; } } } catch { // ignored } var subtitle3 = new Subtitle(); try { int count = 0; foreach (var line in Json.ReadObjectArray(allText)) { count++; ReadParagraph(line, subtitle3); if (count > 20 && subtitle3.Paragraphs.Count == 0) { break; } } } catch { // ignored } if (subtitle1.Paragraphs.Count >= subtitle2.Paragraphs.Count && subtitle1.Paragraphs.Count >= subtitle3.Paragraphs.Count) { subtitle1.Renumber(); return(FixTimeCodeMsOrSeconds(subtitle1)); } if (subtitle2.Paragraphs.Count >= subtitle1.Paragraphs.Count && subtitle2.Paragraphs.Count >= subtitle3.Paragraphs.Count) { subtitle2.Renumber(); return(FixTimeCodeMsOrSeconds(subtitle2)); } subtitle3.Renumber(); return(FixTimeCodeMsOrSeconds(subtitle3)); }
public void MakeHistoryForUndo(string description, string subtitleFormatFriendlyName, DateTime fileModified, Subtitle original, string originalSubtitleFileName, int lineNumber, int linePosition, int linePositionOriginal) { // don't fill memory with history - use a max rollback points if (HistoryItems.Count > MaximumHistoryItems) { HistoryItems.RemoveAt(0); } HistoryItems.Add(new HistoryItem(HistoryItems.Count, this, description, FileName, fileModified, subtitleFormatFriendlyName, original, originalSubtitleFileName, lineNumber, linePosition, linePositionOriginal)); }