Updated the Main form to include subtitles in the details pane. Minor tweaks to the serializer engine. Focus my shift from this to FNRenamer from here.
This commit is contained in:
+38
-21
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
@@ -26,23 +27,23 @@ namespace MKVTest
|
||||
}
|
||||
if (i == file.Length - 1)
|
||||
{
|
||||
test[test.Count - 1] = padding + "<" + tag.Name + ">" + tag.Value + "</" + tag.Name + ">";
|
||||
var t = stack.Pop();
|
||||
test[test.Count - 2] = padding + "<" + t.Name + " Value=\"" + t.Value + "\" />";
|
||||
test[test.Count - 1] = padding + "<" + tag.Name + " Value=\"" + tag.Value + "\" />";
|
||||
//Unwind the stack.
|
||||
foreach (var s in stack)
|
||||
{
|
||||
test.Add("</" + s.Name + ">");
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
//xml.Append(padding + "<" + tag.Name + ">" + tag.Value == string.Empty ? Environment.NewLine : string.Empty);
|
||||
//test.Add(padding + "<" + tag.Name + ">");
|
||||
//if (stack.Count != 0)
|
||||
//{
|
||||
// var t = stack.Pop();
|
||||
// //xml.Append(t.Value + "</" + t.Name + ">");
|
||||
// test.Add(t.Value + "</" + t.Name + ">");
|
||||
//}
|
||||
if (depth == lastDepthLevel)
|
||||
{
|
||||
if (stack.Count != 0)
|
||||
{
|
||||
var t = stack.Pop();
|
||||
test[test.Count - 1] = padding + test[test.Count - 1] + t.Value + "</" + t.Name + ">";
|
||||
test[test.Count - 1] = padding + "<" + t.Name + " Value=\"" + t.Value + "\" />";
|
||||
}
|
||||
}
|
||||
else if (depth < lastDepthLevel)
|
||||
@@ -51,16 +52,16 @@ namespace MKVTest
|
||||
if (stack.Count != 0)
|
||||
{
|
||||
var t = stack.Pop();
|
||||
test[test.Count - 1] = padding + "<" + t.Name + ">" + t.Value + "</" + t.Name + ">";
|
||||
test[test.Count - 1] = padding + "<" + t.Name + " Value=\"" + t.Value + "\" />";
|
||||
var diff = lastDepthLevel - depth;
|
||||
var subPadding = new StringBuilder();
|
||||
for (var j = 0; j < diff; j++)
|
||||
{
|
||||
subPadding.Clear();
|
||||
for (var k = padding.Length - j; k != 0; k--)
|
||||
{
|
||||
subPadding.Append(" ");
|
||||
}
|
||||
//for (var k = padding.Length - j; k != 0; k--)
|
||||
//{
|
||||
// subPadding.Append(" ");
|
||||
//}
|
||||
if (stack.Count != 0)
|
||||
{
|
||||
test.Add(subPadding + "</" + stack.Pop().Name + ">");
|
||||
@@ -80,6 +81,20 @@ namespace MKVTest
|
||||
return test;
|
||||
}
|
||||
|
||||
public List<XmlTag> CreateTagListFromFile(string filePath)
|
||||
{
|
||||
var file = File.ReadAllLines(filePath);
|
||||
if (file.Length == 0) return new List<XmlTag>();
|
||||
var tags = new List<XmlTag>();
|
||||
foreach (var line in file)
|
||||
{
|
||||
var tag = CreateTagFromString(line);
|
||||
if(tag.Name != string.Empty) tags.Add(tag);
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
private static XmlTag CreateTagFromString(string text, XmlTag parent = null)
|
||||
{
|
||||
var tag = new XmlTag();
|
||||
@@ -88,6 +103,7 @@ namespace MKVTest
|
||||
var insideBraces = false;
|
||||
var name = new StringBuilder();
|
||||
var value = new StringBuilder();
|
||||
var attributes = new List<MkvAttribute>();
|
||||
|
||||
for (var i = 0; i < text.Length; i++)
|
||||
{
|
||||
@@ -96,7 +112,7 @@ namespace MKVTest
|
||||
continue;
|
||||
}
|
||||
|
||||
if (text[i].ToString() == ":" && !foundDelimiter)
|
||||
if ((text[i].ToString() == ":" || text[i] == ',') && !foundDelimiter)
|
||||
{
|
||||
foundDelimiter = true;
|
||||
continue;
|
||||
@@ -110,6 +126,7 @@ namespace MKVTest
|
||||
insideBraces = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
value.Append(text[i]);
|
||||
}
|
||||
else
|
||||
@@ -127,10 +144,10 @@ namespace MKVTest
|
||||
if(!insideBraces) name.Append(text[i]);
|
||||
}
|
||||
}
|
||||
if (text.Contains("Segment, "))
|
||||
{
|
||||
name.Clear();
|
||||
}
|
||||
//if (text.Contains("Segment, "))
|
||||
//{
|
||||
// name.Clear();
|
||||
//}
|
||||
tag.Name = FormatTagName(name.ToString());
|
||||
tag.Value = value.ToString().Trim();
|
||||
tag.Parent = parent;
|
||||
|
||||
Reference in New Issue
Block a user