mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Fix common errors - "Add missing period at end of line" now works better with italics
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@272 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
69be8e1365
commit
90d4cd3d80
@ -1373,6 +1373,11 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
Paragraph p = _subtitle.Paragraphs[i];
|
Paragraph p = _subtitle.Paragraphs[i];
|
||||||
Paragraph next = _subtitle.GetParagraphOrDefault(i + 1);
|
Paragraph next = _subtitle.GetParagraphOrDefault(i + 1);
|
||||||
|
string nextText = string.Empty;
|
||||||
|
if (next != null)
|
||||||
|
nextText = Utilities.RemoveHtmlTags(next.Text).TrimStart('-').TrimStart();
|
||||||
|
string tempNoHtml = Utilities.RemoveHtmlTags(p.Text).TrimEnd();
|
||||||
|
|
||||||
|
|
||||||
if (IsOneLineUrl(p.Text))
|
if (IsOneLineUrl(p.Text))
|
||||||
{
|
{
|
||||||
@ -1380,11 +1385,11 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
else if (next != null &&
|
else if (next != null &&
|
||||||
next.Text.Length > 0 &&
|
next.Text.Length > 0 &&
|
||||||
Utilities.GetLetters(true, false, false).Contains(next.Text[0].ToString()) &&
|
Utilities.GetLetters(true, false, false).Contains(nextText[0].ToString()) &&
|
||||||
p.Text.Length > 0 &&
|
tempNoHtml.Length > 0 &&
|
||||||
(!"\",.!?:;>-])♪♫".Contains(p.Text[p.Text.Length - 1].ToString())))
|
(!"\",.!?:;>-])♪♫".Contains(tempNoHtml[tempNoHtml.Length - 1].ToString())))
|
||||||
{
|
{
|
||||||
if (!p.Text.EndsWith(")") && !p.Text.EndsWith("]") && !p.Text.EndsWith("*") && !p.Text.EndsWith("¶")) // hear impaired
|
if (!tempNoHtml.EndsWith(")") && !tempNoHtml.EndsWith("]") && !tempNoHtml.EndsWith("*") && !tempNoHtml.EndsWith("¶")) // hear impaired
|
||||||
{
|
{
|
||||||
if (p.Text != p.Text.ToUpper())
|
if (p.Text != p.Text.ToUpper())
|
||||||
{
|
{
|
||||||
@ -1397,9 +1402,20 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
if (AllowFix(i + 1, fixAction))
|
if (AllowFix(i + 1, fixAction))
|
||||||
{
|
{
|
||||||
string oldText = p.Text;
|
string oldText = p.Text;
|
||||||
|
if (p.Text.EndsWith(">"))
|
||||||
|
{
|
||||||
|
int lastLT = p.Text.LastIndexOf("<");
|
||||||
|
if (lastLT > 0)
|
||||||
|
p.Text = p.Text.Insert(lastLT, ".");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p.Text += ".";
|
||||||
|
}
|
||||||
|
if (p.Text != oldText)
|
||||||
|
{
|
||||||
_totalFixes++;
|
_totalFixes++;
|
||||||
missigPeriodsAtEndOfLine++;
|
missigPeriodsAtEndOfLine++;
|
||||||
p.Text += ".";
|
|
||||||
AddFixToListView(p, i + 1, fixAction, oldText, p.Text);
|
AddFixToListView(p, i + 1, fixAction, oldText, p.Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1407,6 +1423,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (next != null && !string.IsNullOrEmpty(p.Text) && Utilities.GetLetters(true, true, true).Contains(p.Text[p.Text.Length-1].ToString()))
|
else if (next != null && !string.IsNullOrEmpty(p.Text) && Utilities.GetLetters(true, true, true).Contains(p.Text[p.Text.Length-1].ToString()))
|
||||||
{
|
{
|
||||||
if (p.Text != p.Text.ToUpper())
|
if (p.Text != p.Text.ToUpper())
|
||||||
|
@ -112,6 +112,8 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
Instance._baseDir = Path.GetDirectoryName(a.Location);
|
Instance._baseDir = Path.GetDirectoryName(a.Location);
|
||||||
else
|
else
|
||||||
Instance._baseDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
|
Instance._baseDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
|
||||||
|
if (Instance._baseDir.EndsWith("Test\\bin\\Release"))
|
||||||
|
Instance._baseDir = Instance._baseDir.Replace("Test\\bin\\Release", "bin\\Release");
|
||||||
if (!Instance._baseDir.EndsWith(Path.DirectorySeparatorChar.ToString()))
|
if (!Instance._baseDir.EndsWith(Path.DirectorySeparatorChar.ToString()))
|
||||||
Instance._baseDir += Path.DirectorySeparatorChar;
|
Instance._baseDir += Path.DirectorySeparatorChar;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Nikse.SubtitleEdit.Forms;
|
using System;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
using System;
|
using Nikse.SubtitleEdit.Forms;
|
||||||
using Nikse.SubtitleEdit.Logic;
|
using Nikse.SubtitleEdit.Logic;
|
||||||
|
|
||||||
namespace Test
|
namespace Test
|
||||||
@ -36,7 +36,14 @@ namespace Test
|
|||||||
Subtitle subtitle = new Subtitle();
|
Subtitle subtitle = new Subtitle();
|
||||||
subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000));
|
subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000));
|
||||||
target.Initialize(subtitle);
|
target.Initialize(subtitle);
|
||||||
target.ButtonFixClick(null, null);
|
}
|
||||||
|
|
||||||
|
private static void InitializeFixCommonErrorsLine(FixCommonErrors_Accessor target, string line, string line2)
|
||||||
|
{
|
||||||
|
Subtitle subtitle = new Subtitle();
|
||||||
|
subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000));
|
||||||
|
subtitle.Paragraphs.Add(new Paragraph(line2, 10001, 30000));
|
||||||
|
target.Initialize(subtitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Additional test attributes
|
#region Additional test attributes
|
||||||
@ -70,9 +77,6 @@ namespace Test
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Merge short lines
|
#region Merge short lines
|
||||||
/// <summary>
|
|
||||||
///A test for Merge short lines
|
|
||||||
///</summary>
|
|
||||||
[TestMethod()]
|
[TestMethod()]
|
||||||
[DeploymentItem("SubtitleEdit.exe")]
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
public void FixShortLinesNormal()
|
public void FixShortLinesNormal()
|
||||||
@ -83,9 +87,6 @@ namespace Test
|
|||||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "This is short!");
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "This is short!");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///A test for Merge short lines
|
|
||||||
///</summary>
|
|
||||||
[TestMethod()]
|
[TestMethod()]
|
||||||
[DeploymentItem("SubtitleEdit.exe")]
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
public void FixShortLinesLong()
|
public void FixShortLinesLong()
|
||||||
@ -96,9 +97,6 @@ namespace Test
|
|||||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "This I'm pretty sure is not a" + Environment.NewLine + "short line, that should be merged!!!");
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "This I'm pretty sure is not a" + Environment.NewLine + "short line, that should be merged!!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///A test for Merge short lines
|
|
||||||
///</summary>
|
|
||||||
[TestMethod()]
|
[TestMethod()]
|
||||||
[DeploymentItem("SubtitleEdit.exe")]
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
public void FixShortLinesNormalItalic()
|
public void FixShortLinesNormalItalic()
|
||||||
@ -109,9 +107,6 @@ namespace Test
|
|||||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>This is short!</i>");
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>This is short!</i>");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///A test for Merge short lines
|
|
||||||
///</summary>
|
|
||||||
[TestMethod()]
|
[TestMethod()]
|
||||||
[DeploymentItem("SubtitleEdit.exe")]
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
public void FixShortLinesDialogue()
|
public void FixShortLinesDialogue()
|
||||||
@ -122,9 +117,6 @@ namespace Test
|
|||||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "- Hallo!" + Environment.NewLine + "- Hi");
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "- Hallo!" + Environment.NewLine + "- Hi");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///A test for Merge short lines
|
|
||||||
///</summary>
|
|
||||||
[TestMethod()]
|
[TestMethod()]
|
||||||
[DeploymentItem("SubtitleEdit.exe")]
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
public void FixShortLinesDialogueItalic()
|
public void FixShortLinesDialogueItalic()
|
||||||
@ -149,5 +141,130 @@ namespace Test
|
|||||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>- Hallo!</i>" + Environment.NewLine + "<i>- Hi<i>");
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>- Hallo!</i>" + Environment.NewLine + "<i>- Hi<i>");
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Fix Italics
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsBeginOnly()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "<i>Hey!" + Environment.NewLine + "<i>Boy!");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>Hey!</i>" + Environment.NewLine + "<i>Boy!</i>");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsFirstLineEndMissing()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "<i>(jones) seems their attackers headed north." + Environment.NewLine + "<i>Hi!</i>");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>(jones) seems their attackers headed north." + Environment.NewLine + "Hi!</i>");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsStartInMiddle()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "Seems their <i>attackers headed north.");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "Seems their attackers headed north.");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsEmptyStart()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "<i></i>test");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "test");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsSecondLineMissingEnd()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "- And..." + Environment.NewLine + "<i>Awesome it is!");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "- And..." + Environment.NewLine + "<i>Awesome it is!</i>");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsBadEnding()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "Awesome it is!</i>");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "Awesome it is!");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsBadEnding2()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "Awesome it is!<i></i>");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "Awesome it is!");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsBadEnding3()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "Awesome it is!<i>");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "Awesome it is!");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixItalicsBadEnding4()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "Awesome it is!</i><i>");
|
||||||
|
target.FixInvalidItalicTags();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "Awesome it is!");
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Fix Missing Periods At End Of Line
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixMissingPeriodsAtEndOfLineNone()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "This is line one!" + Environment.NewLine + "<i>Boy!</i>", "This is line one!" + Environment.NewLine + "<i>Boy!</i>");
|
||||||
|
target.FixMissingPeriodsAtEndOfLine();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "This is line one!" + Environment.NewLine + "<i>Boy!</i>");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixMissingPeriodsAtEndOfLineItalicAndMissing()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "This is line one!" + Environment.NewLine + "<i>Boy</i>", "This is line one!" + Environment.NewLine + "<i>Boy!</i>");
|
||||||
|
target.FixMissingPeriodsAtEndOfLine();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "This is line one!" + Environment.NewLine + "<i>Boy.</i>");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
[DeploymentItem("SubtitleEdit.exe")]
|
||||||
|
public void FixMissingPeriodsAtEndOfLineItalicAndMissing2()
|
||||||
|
{
|
||||||
|
FixCommonErrors_Accessor target = new FixCommonErrors_Accessor();
|
||||||
|
InitializeFixCommonErrorsLine(target, "<i>This is line one!" + Environment.NewLine + "Boy</i>", "This is line one!" + Environment.NewLine + "<i>Boy!</i>");
|
||||||
|
target.FixMissingPeriodsAtEndOfLine();
|
||||||
|
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "<i>This is line one!" + Environment.NewLine + "Boy.</i>");
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user