Created a properties form, testing dynamic UI building for the relevant MKV attributes.

This commit is contained in:
2017-09-07 14:25:33 -05:00
parent ae5a8284b6
commit 51ab989cb8
8 changed files with 531 additions and 43 deletions
+41 -23
View File
@@ -135,7 +135,7 @@ namespace MKVTest
Text = @"Track:s" + subtitleTrackNumber + @" Language: " + fileTrack.Language,
Parent = flowLayoutPanel1
};
audioTrackNumber++;
subtitleTrackNumber++;
if (flowLayoutPanel1.Container != null)
{
flowLayoutPanel1.Container.Add(nameLabel);
@@ -232,10 +232,6 @@ namespace MKVTest
FileName = "cmd.exe",
Arguments = command
};
if (!CheckFiles())
{
MessageBox.Show(@"The two required files, mkvpropedit.exe and mkvinfo.exe are missing from this program's startup folder. These files are required to edit MKV files.", @"Missing Required Files");
}
process.StartInfo = startInfo;
process.Start();
while (!process.HasExited)
@@ -266,47 +262,69 @@ namespace MKVTest
ListFiles(d.SelectedPath);
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e) => Application.Exit();
public static bool CheckFiles()
{
return File.Exists("mkvpropedit.exe") && File.Exists("mkvinfo.exe");
}
private void ReadXml()
private void ReadXml(string s)
{
var xReader = new XmlTextReader(File.OpenRead("Test.info"));
var xReader = new XmlTextReader(new StringReader(s));
var r = new StringBuilder();
ClearForm();
//var readingTrack = false;
var tags = new List<XmlTag>();
while (xReader.Read())
{
switch (xReader.NodeType)
{
case XmlNodeType.Element:
//if (xReader.Name == "ATrack")
//{
inputFilesListView.Items.Add(xReader.Name + ": " + xReader.Value);
//}
//inputFilesListView.Items.Add(xReader.Name + ": " + xReader.Value);
var t = new XmlTag
{
Name = xReader.Name
};
tags.Add(t);
break;
case XmlNodeType.Text:
inputFilesListView.Items.Add(xReader.Value);
//inputFilesListView.Items.Add(xReader.Value);
tags[tags.Count - 1].Value = xReader.Value;
break;
}
}
//MessageBox.Show(r.ToString());
foreach (var tag in tags)
{
var label = new Label
{
Text = tag.Name
};
var textBox = new TextBox
{
Text = tag.Value
};
if (flowLayoutPanel1.Container != null)
{
flowLayoutPanel1.Container.Add(label);
flowLayoutPanel1.Container.Add(textBox);
}
//inputFilesListView.Items.Add(tag.Name + ": " + tag.Value);
}
}
private void debugToolStripMenuItem_Click(object sender, EventArgs e)
{
var xml = new SerializeMkvInfo();
var x = xml.SerializeFile("info.txt");
File.WriteAllLines("Test.info", x.ToArray());
ReadXml();
//var xml = new SerializeMkvInfo();
//var x = xml.SerializeFile("info.txt");
//var text = new StringBuilder();
//foreach (var line in x)
//{
// text.Append(line.Trim());
//}
//ReadXml(text.ToString());
var p = new FrmProperties();
p.ShowDialog();
}
}
}