コード例 #1
0
ファイル: Subtitle.cs プロジェクト: cedinu/subtitleedit
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: Subtitle.cs プロジェクト: cedinu/subtitleedit
        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));
        }