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:
2017-09-04 21:20:31 -05:00
parent 03308e68b2
commit 646ea08f3e
7 changed files with 133 additions and 66 deletions
+38 -21
View File
@@ -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;