Merge pull request #916 from ivandrofly/patch-20

Fix & Refactor
This commit is contained in:
Nikolaj Olsson 2015-06-23 16:34:37 +02:00
commit 8506c54d68
5 changed files with 38 additions and 42 deletions

View File

@ -457,7 +457,7 @@ namespace Nikse.SubtitleEdit.Core
int italicBeginTagCount = Utilities.CountTagInText(text, beginTag);
int italicEndTagCount = Utilities.CountTagInText(text, endTag);
int noOfLines = Utilities.CountTagInText(text, Environment.NewLine) + 1;
int noOfLines = Utilities.GetNumberOfLines(text);
if (italicBeginTagCount + italicEndTagCount > 0)
{
if (italicBeginTagCount == 1 && italicEndTagCount == 1 && text.IndexOf(beginTag, StringComparison.Ordinal) > text.IndexOf(endTag, StringComparison.Ordinal))
@ -546,7 +546,7 @@ namespace Nikse.SubtitleEdit.Core
// - Foo</i> | - Foo.
// - Bar. | - Foo.</i>
if (!isFixed && Utilities.CountTagInText(cleanText, Environment.NewLine) == 1)
if (!isFixed && Utilities.GetNumberOfLines(cleanText) == 2)
{
int newLineIndex = text.IndexOf(Environment.NewLine, StringComparison.Ordinal);
if (newLineIndex > 0)
@ -586,7 +586,7 @@ namespace Nikse.SubtitleEdit.Core
// <i>Foo</i>
// <i>Bar</i>
if (italicBeginTagCount == 2 && italicEndTagCount == 2 && Utilities.CountTagInText(text, Environment.NewLine) == 1)
if (italicBeginTagCount == 2 && italicEndTagCount == 2 && Utilities.GetNumberOfLines(text) == 2)
{
int index = text.IndexOf(Environment.NewLine, StringComparison.Ordinal);
if (index > 0 && text.Length > index + (beginTag.Length + endTag.Length))
@ -644,14 +644,14 @@ namespace Nikse.SubtitleEdit.Core
//<i>- You think they're they gone?<i>
//<i>- That can't be.</i>
if ((italicBeginTagCount == 3 && italicEndTagCount == 1) && Utilities.CountTagInText(text, Environment.NewLine) == 1)
if ((italicBeginTagCount == 3 && italicEndTagCount == 1) && Utilities.GetNumberOfLines(text) == 2)
{
var newLineIdx = text.IndexOf(Environment.NewLine, StringComparison.Ordinal);
var firstLine = text.Substring(0, newLineIdx).Trim();
var secondLine = text.Substring(newLineIdx).Trim();
if (Utilities.StartsAndEndsWithTag(firstLine, beginTag, beginTag) && Utilities.StartsAndEndsWithTag(secondLine, beginTag, endTag) ||
Utilities.StartsAndEndsWithTag(secondLine, beginTag, beginTag) && Utilities.StartsAndEndsWithTag(firstLine, beginTag, endTag))
if ((Utilities.StartsAndEndsWithTag(firstLine, beginTag, beginTag) && Utilities.StartsAndEndsWithTag(secondLine, beginTag, endTag)) ||
(Utilities.StartsAndEndsWithTag(secondLine, beginTag, beginTag) && Utilities.StartsAndEndsWithTag(firstLine, beginTag, endTag)))
{
text = text.Replace("<i>", string.Empty);
text = text.Replace("</i>", string.Empty);

View File

@ -3678,18 +3678,14 @@ namespace Nikse.SubtitleEdit.Forms
private void TextBoxSourceKeyDown(object sender, KeyEventArgs e)
{
ShowSourceLineNumber();
e.Handled = false;
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
textBoxSource.SelectAll();
e.Handled = true;
e.SuppressKeyPress = true;
}
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.D)
{
textBoxSource.SelectionLength = 0;
e.Handled = true;
e.SuppressKeyPress = true;
}
}

View File

@ -269,58 +269,58 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
private static string EncodeText(string s)
{
s = HtmlUtil.RemoveOpenCloseTags(s, HtmlUtil.TagBold, HtmlUtil.TagUnderline, HtmlUtil.TagFont);
if (s.StartsWith("{\\an3}") || s.StartsWith("{\\an6}"))
if (s.StartsWith("{\\an3}", StringComparison.Ordinal) || s.StartsWith("{\\an6}", StringComparison.Ordinal))
s = "/STYLE RIGHT" + Environment.NewLine + s.Remove(0, 6).Trim();
if (s.StartsWith("{\\an1}") || s.StartsWith("{\\an4}"))
if (s.StartsWith("{\\an1}", StringComparison.Ordinal) || s.StartsWith("{\\an4}", StringComparison.Ordinal))
s = "/STYLE LEFT" + Environment.NewLine + s.Remove(0, 6).Trim();
if (s.StartsWith("{\\an7}") || s.StartsWith("{\\an8}") || s.StartsWith("{\\an9}"))
if (s.StartsWith("{\\an7}", StringComparison.Ordinal) || s.StartsWith("{\\an8}", StringComparison.Ordinal) || s.StartsWith("{\\an9}", StringComparison.Ordinal))
s = "/STYLE VERTICAL(-25)" + Environment.NewLine + s.Remove(0, 6).Trim();
if (s.StartsWith("{\\an2}") || s.StartsWith("{\\an5}"))
if (s.StartsWith("{\\an2}", StringComparison.Ordinal) || s.StartsWith("{\\an5}", StringComparison.Ordinal))
s = s.Remove(0, 6).Trim();
return s;
}
private static string DecodeText(StringBuilder sb)
{
string s = sb.ToString().Trim();
var s = sb.ToString().Trim();
s = s.Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine).Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine);
if (s.StartsWith("/STYLE RIGHT" + Environment.NewLine))
if (s.StartsWith("/STYLE RIGHT" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an3}" + s.Remove(0, 12).Trim();
if (s.StartsWith("/STYLE LEFT" + Environment.NewLine))
if (s.StartsWith("/STYLE LEFT" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an1}" + s.Remove(0, 11).Trim();
if (s.StartsWith("/STYLE TOP" + Environment.NewLine))
if (s.StartsWith("/STYLE TOP" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 10).Trim();
if (s.StartsWith("/STYLE VERTICAL(-25)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-25)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-24)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-24)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-23)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-23)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-22)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-22)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-21)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-21)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-20)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-20)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-19)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-19)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an8}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-18)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-18)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-17)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-17)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-16)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-16)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-15)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-15)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-14)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-14)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-13)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-13)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-12)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-12)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-11)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-11)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
if (s.StartsWith("/STYLE VERTICAL(-10)" + Environment.NewLine))
if (s.StartsWith("/STYLE VERTICAL(-10)" + Environment.NewLine, StringComparison.Ordinal))
s = "{\\an5}" + s.Remove(0, 20).Trim();
s = HtmlUtil.FixInvalidItalicTags(s);
return s;

View File

@ -74,31 +74,31 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
};
string text = p.Text;
if (text.StartsWith("{\\a6}"))
if (text.StartsWith("{\\a6}", StringComparison.Ordinal))
{
text = p.Text.Remove(0, 5);
buffer[7] = 0; // align top
}
else if (text.StartsWith("{\\a1}"))
else if (text.StartsWith("{\\a1}", StringComparison.Ordinal))
{
text = p.Text.Remove(0, 5);
buffer[2] = 0; // align left
buffer[3] = 0; // align left
}
else if (text.StartsWith("{\\a3}"))
else if (text.StartsWith("{\\a3}", StringComparison.Ordinal))
{
text = p.Text.Remove(0, 5);
buffer[2] = 0; // align right
buffer[3] = 0xc0; // align right
}
else if (text.StartsWith("{\\a5}"))
else if (text.StartsWith("{\\a5}", StringComparison.Ordinal))
{
text = p.Text.Remove(0, 5);
buffer[7] = 0; // align top
buffer[2] = 0; // align left
buffer[3] = 0; // align left
}
else if (text.StartsWith("{\\a7}"))
else if (text.StartsWith("{\\a7}", StringComparison.Ordinal))
{
text = p.Text.Remove(0, 5);
buffer[7] = 0; // align top
@ -106,7 +106,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
buffer[3] = 0xc0; // align right
}
if (text.StartsWith("<i>") && text.EndsWith("</i>"))
if (text.StartsWith("<i>", StringComparison.Ordinal) && text.EndsWith("</i>", StringComparison.Ordinal))
buffer[10] = 3;
fs.Write(buffer, 0, buffer.Length);

View File

@ -77,9 +77,9 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
paragraph.Attributes.Append(text);
XmlAttribute align = xml.CreateAttribute("Align");
if (p.Text.StartsWith("{\\an1}") || p.Text.StartsWith("{\\an4}") || p.Text.StartsWith("{\\an7}"))
if (p.Text.StartsWith("{\\an1}", StringComparison.Ordinal) || p.Text.StartsWith("{\\an4}", StringComparison.Ordinal) || p.Text.StartsWith("{\\an7}", StringComparison.Ordinal))
align.InnerText = "Left";
else if (p.Text.StartsWith("{\\an3}") || p.Text.StartsWith("{\\an6}") || p.Text.StartsWith("{\\an9}"))
else if (p.Text.StartsWith("{\\an3}", StringComparison.Ordinal) || p.Text.StartsWith("{\\an6}", StringComparison.Ordinal) || p.Text.StartsWith("{\\an9}", StringComparison.Ordinal))
align.InnerText = "Right";
else
align.InnerText = "Center";