mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Add more braces
This commit is contained in:
parent
a0d880add1
commit
08a6a45777
@ -23,16 +23,26 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
if (encoding.Equals(Encoding.UTF8))
|
||||
{
|
||||
if (letter == 'ı')
|
||||
{
|
||||
return 'I';
|
||||
}
|
||||
|
||||
if (letter == 'i')
|
||||
{
|
||||
return 'İ';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (letter == 'i')
|
||||
{
|
||||
return 'Ý';
|
||||
}
|
||||
|
||||
if (letter == 'ý')
|
||||
{
|
||||
return 'I';
|
||||
}
|
||||
}
|
||||
return letter;
|
||||
}
|
||||
@ -40,7 +50,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
public static string FixEllipsesStartHelper(string text)
|
||||
{
|
||||
if (string.IsNullOrEmpty(text) || text.Trim().Length < 4 || !(text.Contains("..", StringComparison.Ordinal) || text.Contains(". .", StringComparison.Ordinal)))
|
||||
{
|
||||
return text;
|
||||
}
|
||||
|
||||
var pre = string.Empty;
|
||||
if (text.StartsWith("<font ", StringComparison.Ordinal) && text.IndexOf('>', 5) >= 0)
|
||||
@ -63,7 +75,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
int removeLength = 0;
|
||||
while (removeLength + 1 < text.Length && (text[1 + removeLength] == '.' || text[1 + removeLength] == ' '))
|
||||
{
|
||||
removeLength++;
|
||||
}
|
||||
text = text.Remove(1, removeLength);
|
||||
}
|
||||
|
||||
@ -84,14 +98,18 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
text = "<i>" + text.Substring(tag.Length);
|
||||
while (text.StartsWith("<i>.", StringComparison.Ordinal) || text.StartsWith("<i> ", StringComparison.Ordinal))
|
||||
{
|
||||
text = "<i>" + text.Substring(4);
|
||||
}
|
||||
}
|
||||
tag = "<i> ...";
|
||||
if (text.StartsWith(tag, StringComparison.Ordinal))
|
||||
{
|
||||
text = "<i>" + text.Substring(tag.Length);
|
||||
while (text.StartsWith("<i>.", StringComparison.Ordinal) || text.StartsWith("<i> ", StringComparison.Ordinal))
|
||||
{
|
||||
text = "<i>" + text.Substring(4, text.Length - 4);
|
||||
}
|
||||
}
|
||||
|
||||
tag = "- <i>...";
|
||||
@ -99,14 +117,18 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
text = "- <i>" + text.Substring(tag.Length);
|
||||
while (text.StartsWith("- <i>.", StringComparison.Ordinal))
|
||||
{
|
||||
text = "- <i>" + text.Substring(6);
|
||||
}
|
||||
}
|
||||
tag = "- <i> ...";
|
||||
if (text.StartsWith(tag, StringComparison.Ordinal))
|
||||
{
|
||||
text = "- <i>" + text.Substring(tag.Length);
|
||||
while (text.StartsWith("- <i>.", StringComparison.Ordinal))
|
||||
{
|
||||
text = "- <i>" + text.Substring(6);
|
||||
}
|
||||
}
|
||||
|
||||
// Narrator:... Hello foo!
|
||||
@ -116,7 +138,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
text = text.Replace(": ..", ": ");
|
||||
while (text.Contains(": ."))
|
||||
{
|
||||
text = text.Replace(": .", ": ");
|
||||
}
|
||||
}
|
||||
|
||||
// <i>- ... Foo</i>
|
||||
@ -135,7 +159,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
pre += text.Substring(0, index + 1);
|
||||
if (pre.Length < 2)
|
||||
{
|
||||
return text;
|
||||
}
|
||||
|
||||
text = text.Remove(0, index + 1).TrimStart();
|
||||
text = FixEllipsesStartHelper(text);
|
||||
@ -163,9 +189,13 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
if (char.IsLetter((part0[0])) || CharUtils.IsDigit(part0[0]))
|
||||
{
|
||||
if (text.Length > 3 && text[0] == '<' && text[2] == '>')
|
||||
{
|
||||
text = "<" + text[1] + ">" + "- " + text.Substring(3).TrimStart();
|
||||
}
|
||||
else
|
||||
{
|
||||
text = "- " + text;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -185,7 +215,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
var secLine = HtmlUtil.RemoveHtmlTags(arr[1]).TrimStart();
|
||||
var secLineTemp = HtmlUtil.RemoveHtmlTags(arrTemp[1]).TrimStart();
|
||||
if (secLineTemp.StartsWith('-') && !secLine.StartsWith('-'))
|
||||
{
|
||||
text = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (lineCount == 1)
|
||||
@ -196,13 +228,18 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
var secLineTemp = HtmlUtil.RemoveHtmlTags(arrTemp[1]).TrimStart();
|
||||
if (secLineTemp.StartsWith('-'))
|
||||
{
|
||||
text = temp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = text.IndexOfAny(EndPlusDashListShort, StringComparison.Ordinal);
|
||||
if (index < 0 && text.IndexOf("-- -", StringComparison.Ordinal) > 0)
|
||||
{
|
||||
index = text.IndexOf("-- -", StringComparison.Ordinal) + 1;
|
||||
}
|
||||
|
||||
if (index > 0)
|
||||
{
|
||||
text = text.Remove(index + 1, 1).Insert(index + 1, Environment.NewLine);
|
||||
@ -229,7 +266,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
if (isPrevEndOfLine && prevText.Length > 5 && prevText.EndsWith('.') &&
|
||||
prevText[prevText.Length - 3] == '.' &&
|
||||
char.IsLetter(prevText[prevText.Length - 2]))
|
||||
{
|
||||
isPrevEndOfLine = false;
|
||||
}
|
||||
return isPrevEndOfLine;
|
||||
}
|
||||
|
||||
@ -256,10 +295,11 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
var noTagparts = HtmlUtil.RemoveHtmlTags(text).SplitToLines();
|
||||
if (noTagparts.Count == 2)
|
||||
{
|
||||
if (noTagparts[0].TrimStart().StartsWith('-') && noTagparts[1].Contains(": "))
|
||||
remove = false;
|
||||
if (noTagparts[1].TrimStart().StartsWith('-') && noTagparts[0].Contains(": "))
|
||||
if (noTagparts[0].TrimStart().StartsWith('-') && noTagparts[1].Contains(": ") ||
|
||||
noTagparts[1].TrimStart().StartsWith('-') && noTagparts[0].Contains(": "))
|
||||
{
|
||||
remove = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (remove)
|
||||
@ -278,8 +318,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
}
|
||||
idx = text.IndexOf('-');
|
||||
if (idx >= 0 && st.Pre.Length >= idx)
|
||||
{
|
||||
text = text.Remove(idx, 1).TrimStart();
|
||||
|
||||
}
|
||||
text = RemoveSpacesBeginLine(text);
|
||||
}
|
||||
else
|
||||
@ -345,7 +386,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
var closeIdx = text.IndexOf('>');
|
||||
if (closeIdx > 6 && text[closeIdx + 1] == 0x20)
|
||||
{
|
||||
text = text.Remove(closeIdx + 1, 1);
|
||||
}
|
||||
}
|
||||
return text;
|
||||
}
|
||||
@ -353,14 +396,18 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
public static string RemoveSpacesBeginLineAfterEllipses(string line)
|
||||
{
|
||||
if (line.StartsWith("... ", StringComparison.Ordinal))
|
||||
{
|
||||
line = line.Remove(3, 1);
|
||||
}
|
||||
if (line.Length > 6 && line.LineStartsWithHtmlTag(true)) // <i>... foobar
|
||||
{
|
||||
var idx = line.IndexOf('>') + 1;
|
||||
var pre = line.Substring(0, idx);
|
||||
line = line.Remove(0, idx).TrimStart();
|
||||
if (line.StartsWith("... ", StringComparison.Ordinal))
|
||||
{
|
||||
line = line.Remove(3, 1);
|
||||
}
|
||||
line = pre + line;
|
||||
}
|
||||
if (line.LineStartsWithHtmlTag(false, true)) //<font color="#000000"> and <font>
|
||||
@ -371,7 +418,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
var fontTag = line.Substring(0, closeIdx + 1).TrimStart();
|
||||
line = line.Substring(closeIdx + 1).TrimStart();
|
||||
if (line.StartsWith("... ", StringComparison.Ordinal))
|
||||
{
|
||||
line = line.Remove("... ".Length - 1, 1);
|
||||
}
|
||||
line = fontTag + line;
|
||||
}
|
||||
}
|
||||
@ -399,10 +448,11 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
var part0 = parts[0].TrimEnd().Trim('"');
|
||||
bool doAdd = "!?.".Contains(part0[part0.Length - 1]) || language == "ko";
|
||||
if (parts[0].TrimStart().StartsWith('-') && parts[1].Contains(':') && doAdd)
|
||||
doAdd = false;
|
||||
if (parts[1].TrimStart().StartsWith('-') && parts[0].Contains(':') && doAdd)
|
||||
if (parts[0].TrimStart().StartsWith('-') && parts[1].Contains(':') && doAdd ||
|
||||
parts[1].TrimStart().StartsWith('-') && parts[0].Contains(':') && doAdd)
|
||||
{
|
||||
doAdd = false;
|
||||
}
|
||||
|
||||
if (doAdd)
|
||||
{
|
||||
@ -417,22 +467,34 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
// add dash in second line.
|
||||
var originalParts = text.SplitToLines();
|
||||
if (originalParts[1].LineStartsWithHtmlTag(true))
|
||||
{
|
||||
originalParts[1] = originalParts[1].Substring(0, 3) + "- " + originalParts[1].Remove(0, 3).TrimEnd();
|
||||
}
|
||||
else if (originalParts[1].StartsWith("{\\an", StringComparison.Ordinal) && originalParts[1].Length > 6 && originalParts[1][5] == '}')
|
||||
{
|
||||
originalParts[1] = originalParts[1].Insert(6, "- ");
|
||||
}
|
||||
else
|
||||
{
|
||||
originalParts[1] = "- " + originalParts[1].Trim();
|
||||
}
|
||||
text = originalParts[0] + Environment.NewLine + originalParts[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
// add dash in first line.
|
||||
if (text.LineStartsWithHtmlTag(true))
|
||||
{
|
||||
text = text.Substring(0, 3) + "- " + text.Remove(0, 3).TrimEnd();
|
||||
}
|
||||
else if (text.StartsWith("{\\an", StringComparison.Ordinal) && text.Length > 6 && text[5] == '}')
|
||||
{
|
||||
text = text.Insert(6, "- ");
|
||||
}
|
||||
else
|
||||
{
|
||||
text = "- " + text.Trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -471,7 +533,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
}
|
||||
}
|
||||
if (text.StartsWith(">>", StringComparison.Ordinal) && text.Length > 3)
|
||||
{
|
||||
text = text.TrimStart('>', ' ').TrimStart();
|
||||
}
|
||||
return post + text;
|
||||
}
|
||||
|
||||
@ -480,7 +544,9 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
public static string FixShortLines(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text) || !text.Contains(Environment.NewLine, StringComparison.Ordinal))
|
||||
{
|
||||
return text;
|
||||
}
|
||||
|
||||
string s = HtmlUtil.RemoveHtmlTags(text, true);
|
||||
if (s.Contains(Environment.NewLine) && s.Replace(Environment.NewLine, " ").Replace(" ", " ").Length < Configuration.Settings.Tools.MergeLinesShorterThan)
|
||||
|
@ -315,11 +315,8 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
int count = 0;
|
||||
foreach (Paragraph p in subtitle.Paragraphs)
|
||||
{
|
||||
if (string.IsNullOrEmpty(p.Extra) && ssaStyle.Name.TrimStart('*') == "Default")
|
||||
{
|
||||
count++;
|
||||
}
|
||||
else if (p.Extra != null && ssaStyle.Name.TrimStart('*').Equals(p.Extra.TrimStart('*'), StringComparison.OrdinalIgnoreCase))
|
||||
if (string.IsNullOrEmpty(p.Extra) && ssaStyle.Name.TrimStart('*') == "Default" ||
|
||||
p.Extra != null && ssaStyle.Name.TrimStart('*').Equals(p.Extra.TrimStart('*'), StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
@ -32,7 +32,9 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
var xnsmgr = new XmlNamespaceManager(_xml.NameTable);
|
||||
xnsmgr.AddNamespace("ttml", "http://www.w3.org/ns/ttml");
|
||||
if (_xml.DocumentElement.SelectSingleNode("ttml:head", xnsmgr) == null)
|
||||
{
|
||||
_xml.LoadXml(new TimedText10().ToText(new Subtitle(), "tt")); // load default xml
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
@ -47,7 +49,9 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
var xnsmgr = new XmlNamespaceManager(_xml.NameTable);
|
||||
xnsmgr.AddNamespace("ttml", "http://www.w3.org/ns/ttml");
|
||||
if (_xml.DocumentElement.SelectSingleNode("ttml:head", xnsmgr) == null)
|
||||
{
|
||||
_xml.LoadXml(new TimedText10().ToText(new Subtitle(), "tt")); // load default xml
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
@ -59,26 +63,21 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
_xmlHead = _xml.DocumentElement.SelectSingleNode("ttml:head", _nsmgr);
|
||||
|
||||
foreach (FontFamily ff in FontFamily.Families)
|
||||
{
|
||||
comboBoxFontName.Items.Add(char.ToLower(ff.Name[0]) + ff.Name.Substring(1));
|
||||
}
|
||||
|
||||
InitializeListView();
|
||||
}
|
||||
|
||||
public override string Header
|
||||
{
|
||||
get
|
||||
{
|
||||
return _xml.OuterXml;
|
||||
}
|
||||
}
|
||||
public override string Header => _xml.OuterXml;
|
||||
|
||||
protected override void GeneratePreviewReal()
|
||||
{
|
||||
if (listViewStyles.SelectedItems.Count != 1)
|
||||
return;
|
||||
|
||||
if (pictureBoxPreview.Image != null)
|
||||
pictureBoxPreview.Image.Dispose();
|
||||
pictureBoxPreview.Image?.Dispose();
|
||||
var bmp = new Bitmap(pictureBoxPreview.Width, pictureBoxPreview.Height);
|
||||
|
||||
using (Graphics g = Graphics.FromImage(bmp))
|
||||
@ -93,12 +92,16 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
if (y % (rectangleSize * 2) == 0)
|
||||
{
|
||||
if (x % (rectangleSize * 2) == 0)
|
||||
{
|
||||
c = Color.LightGray;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (x % (rectangleSize * 2) != 0)
|
||||
{
|
||||
c = Color.LightGray;
|
||||
}
|
||||
}
|
||||
g.FillRectangle(new SolidBrush(c), x, y, rectangleSize, rectangleSize);
|
||||
}
|
||||
@ -117,7 +120,9 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
else if (textBoxFontSize.Text.EndsWith('%'))
|
||||
{
|
||||
if (int.TryParse(textBoxFontSize.Text.TrimEnd('%'), out fontSizeInt))
|
||||
{
|
||||
fontSize *= fontSizeInt / 100.0f;
|
||||
}
|
||||
}
|
||||
font = new Font(comboBoxFontName.Text, fontSize);
|
||||
}
|
||||
@ -181,11 +186,15 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
{
|
||||
XmlNode head = _xml.DocumentElement.SelectSingleNode("ttml:head", _nsmgr);
|
||||
if (head == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
XmlNode styling = head.SelectSingleNode("ttml:styling", _nsmgr);
|
||||
if (styling == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (XmlNode node in styling.SelectNodes("ttml:style", _nsmgr))
|
||||
{
|
||||
@ -249,28 +258,32 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
|
||||
subItem.BackColor = c;
|
||||
item.SubItems.Add(subItem);
|
||||
|
||||
int count = 0;
|
||||
foreach (var p in Subtitle.Paragraphs)
|
||||
{
|
||||
if (string.IsNullOrEmpty(p.Extra) && name.Trim() == "Default")
|
||||
count++;
|
||||
else if (p.Extra != null && name.Trim().Equals(p.Extra.TrimStart(), StringComparison.OrdinalIgnoreCase))
|
||||
if (string.IsNullOrEmpty(p.Extra) && name.Trim() == "Default" ||
|
||||
p.Extra != null && name.Trim().Equals(p.Extra.TrimStart(), StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
subItem = new ListViewItem.ListViewSubItem(item, count.ToString());
|
||||
item.SubItems.Add(subItem);
|
||||
|
||||
listViewStyles.Items.Add(item);
|
||||
}
|
||||
|
||||
private void TimedTextStyles_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Escape)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
}
|
||||
}
|
||||
|
||||
private void listViewStyles_SelectedIndexChanged(object sender, EventArgs e)
|
||||
@ -292,30 +305,45 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
{
|
||||
string name = "default";
|
||||
if (node.Attributes["xml:id"] != null)
|
||||
{
|
||||
name = node.Attributes["xml:id"].Value;
|
||||
}
|
||||
else if (node.Attributes["id"] != null)
|
||||
{
|
||||
name = node.Attributes["id"].Value;
|
||||
}
|
||||
|
||||
if (name == styleName)
|
||||
{
|
||||
string fontFamily = "Arial";
|
||||
if (node.Attributes["tts:fontFamily"] != null)
|
||||
{
|
||||
fontFamily = node.Attributes["tts:fontFamily"].Value;
|
||||
}
|
||||
|
||||
string fontWeight = "normal";
|
||||
if (node.Attributes["tts:fontWeight"] != null)
|
||||
{
|
||||
fontWeight = node.Attributes["tts:fontWeight"].Value;
|
||||
}
|
||||
|
||||
string fontStyle = "normal";
|
||||
if (node.Attributes["tts:fontStyle"] != null)
|
||||
{
|
||||
fontStyle = node.Attributes["tts:fontStyle"].Value;
|
||||
}
|
||||
|
||||
string fontColor = "white";
|
||||
if (node.Attributes["tts:color"] != null)
|
||||
{
|
||||
fontColor = node.Attributes["tts:color"].Value;
|
||||
}
|
||||
|
||||
string fontSize = "100%";
|
||||
if (node.Attributes["tts:fontSize"] != null)
|
||||
{
|
||||
fontSize = node.Attributes["tts:fontSize"].InnerText;
|
||||
}
|
||||
|
||||
textBoxStyleName.Text = name;
|
||||
comboBoxFontName.Text = fontFamily;
|
||||
@ -325,14 +353,20 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
// normal | italic | oblique
|
||||
comboBoxFontStyle.SelectedIndex = 0;
|
||||
if (fontStyle.Equals("italic", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
comboBoxFontStyle.SelectedIndex = 1;
|
||||
}
|
||||
if (fontStyle.Equals("oblique", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
comboBoxFontStyle.SelectedIndex = 2;
|
||||
}
|
||||
|
||||
// normal | bold
|
||||
comboBoxFontWeight.SelectedIndex = 0;
|
||||
if (fontWeight.Equals("bold", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
comboBoxFontWeight.SelectedIndex = 1;
|
||||
}
|
||||
|
||||
Color color = Color.White;
|
||||
try
|
||||
@ -389,7 +423,9 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
listViewStyles.Items.RemoveAt(listViewStyles.SelectedItems[0].Index);
|
||||
|
||||
if (index >= listViewStyles.Items.Count)
|
||||
{
|
||||
index--;
|
||||
}
|
||||
listViewStyles.Items[index].Selected = true;
|
||||
}
|
||||
}
|
||||
@ -418,7 +454,9 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
foreach (ListViewItem item in listViewStyles.Items)
|
||||
{
|
||||
if (item.Text == name)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -446,7 +484,7 @@ namespace Nikse.SubtitleEdit.Forms.Styles
|
||||
private void UpdateHeaderXml(string id, string tag, string value)
|
||||
{
|
||||
XmlNodeList styles = _xml.DocumentElement.SelectNodes("//ttml:head//ttml:styling/ttml:style", _nsmgr);
|
||||
|
||||
|
||||
foreach (XmlNode style in styles)
|
||||
{
|
||||
XmlAttribute idAttr = style.Attributes["xml:id"];
|
||||
|
Loading…
Reference in New Issue
Block a user