mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-22 11:12:36 +01:00
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@384 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
26ac3eddb6
commit
773e807f57
@ -1,5 +1,24 @@
|
|||||||
Subtitle Edit Changelog
|
Subtitle Edit Changelog
|
||||||
|
|
||||||
|
|
||||||
|
3.2 (net yet released)
|
||||||
|
* NEW:
|
||||||
|
* Subtitle formats: D-Cinema, Cavena890
|
||||||
|
* Most important shortcuts in Options -> Settings
|
||||||
|
* Command line conversion between subtitle formats (example: subtitleedit /convert *.srt microdvd)
|
||||||
|
* Subtitle preview font size (below video player) is now available in Options -> Settings
|
||||||
|
* Edit -> Select all
|
||||||
|
* List view context menu: Copy as text to clipboard
|
||||||
|
* Transscript importer...???
|
||||||
|
* Plug-ins...???
|
||||||
|
* IMPROVED:
|
||||||
|
* Can now read Adobe Encore files starting with line numbers
|
||||||
|
* Merge short lines can now also merge lines ending with ".", "?", or "!"
|
||||||
|
* FIXED:
|
||||||
|
* Adjust all times did not work for MicroDvd
|
||||||
|
* Remove empty white spaces from Google translate
|
||||||
|
|
||||||
|
|
||||||
3.1 (3rd March 2011)
|
3.1 (3rd March 2011)
|
||||||
* NEW:
|
* NEW:
|
||||||
* Collaboration via the internet ("Networking", also has chat)
|
* Collaboration via the internet ("Networking", also has chat)
|
||||||
|
20
src/Forms/Main.Designer.cs
generated
20
src/Forms/Main.Designer.cs
generated
@ -100,6 +100,8 @@
|
|||||||
this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.multipleReplaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.multipleReplaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.gotoLineNumberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.gotoLineNumberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator21 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.editSelectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.adjustDisplayTimeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.adjustDisplayTimeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.fixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.fixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@ -912,7 +914,9 @@
|
|||||||
this.findNextToolStripMenuItem,
|
this.findNextToolStripMenuItem,
|
||||||
this.replaceToolStripMenuItem,
|
this.replaceToolStripMenuItem,
|
||||||
this.multipleReplaceToolStripMenuItem,
|
this.multipleReplaceToolStripMenuItem,
|
||||||
this.gotoLineNumberToolStripMenuItem});
|
this.gotoLineNumberToolStripMenuItem,
|
||||||
|
this.toolStripSeparator21,
|
||||||
|
this.editSelectAllToolStripMenuItem});
|
||||||
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
|
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
|
||||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(40, 20);
|
this.editToolStripMenuItem.Size = new System.Drawing.Size(40, 20);
|
||||||
this.editToolStripMenuItem.Text = "Edit";
|
this.editToolStripMenuItem.Text = "Edit";
|
||||||
@ -1013,6 +1017,18 @@
|
|||||||
this.gotoLineNumberToolStripMenuItem.Text = "Goto line number...";
|
this.gotoLineNumberToolStripMenuItem.Text = "Goto line number...";
|
||||||
this.gotoLineNumberToolStripMenuItem.Click += new System.EventHandler(this.GotoLineNumberToolStripMenuItemClick);
|
this.gotoLineNumberToolStripMenuItem.Click += new System.EventHandler(this.GotoLineNumberToolStripMenuItemClick);
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator21
|
||||||
|
//
|
||||||
|
this.toolStripSeparator21.Name = "toolStripSeparator21";
|
||||||
|
this.toolStripSeparator21.Size = new System.Drawing.Size(219, 6);
|
||||||
|
//
|
||||||
|
// editSelectAllToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.editSelectAllToolStripMenuItem.Name = "editSelectAllToolStripMenuItem";
|
||||||
|
this.editSelectAllToolStripMenuItem.Size = new System.Drawing.Size(222, 22);
|
||||||
|
this.editSelectAllToolStripMenuItem.Text = "Select all";
|
||||||
|
this.editSelectAllToolStripMenuItem.Click += new System.EventHandler(this.editSelectAllToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// toolsToolStripMenuItem
|
// toolsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
@ -3745,6 +3761,8 @@
|
|||||||
private System.Windows.Forms.Button buttonSplitLine;
|
private System.Windows.Forms.Button buttonSplitLine;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemChangeFrameRate2;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemChangeFrameRate2;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemCopySourceText;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemCopySourceText;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator21;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem editSelectAllToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
if (versionInfo.Length >= 3 && versionInfo[2] != "0")
|
if (versionInfo.Length >= 3 && versionInfo[2] != "0")
|
||||||
_title += "." + versionInfo[2];
|
_title += "." + versionInfo[2];
|
||||||
}
|
}
|
||||||
return _title;
|
return _title + " Alpha";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -713,6 +713,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
replaceToolStripMenuItem.Text = _language.Menu.Edit.Replace;
|
replaceToolStripMenuItem.Text = _language.Menu.Edit.Replace;
|
||||||
multipleReplaceToolStripMenuItem.Text = _language.Menu.Edit.MultipleReplace;
|
multipleReplaceToolStripMenuItem.Text = _language.Menu.Edit.MultipleReplace;
|
||||||
gotoLineNumberToolStripMenuItem.Text = _language.Menu.Edit.GoToSubtitleNumber;
|
gotoLineNumberToolStripMenuItem.Text = _language.Menu.Edit.GoToSubtitleNumber;
|
||||||
|
editSelectAllToolStripMenuItem.Text = _language.Menu.ContextMenu.SelectAll;
|
||||||
|
|
||||||
toolsToolStripMenuItem.Text = _language.Menu.Tools.Title;
|
toolsToolStripMenuItem.Text = _language.Menu.Tools.Title;
|
||||||
adjustDisplayTimeToolStripMenuItem.Text = _language.Menu.Tools.AdjustDisplayDuration;
|
adjustDisplayTimeToolStripMenuItem.Text = _language.Menu.Tools.AdjustDisplayDuration;
|
||||||
@ -7836,13 +7837,15 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
findNextToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainEditFindNext);
|
findNextToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainEditFindNext);
|
||||||
replaceToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainEditReplace);
|
replaceToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainEditReplace);
|
||||||
gotoLineNumberToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainEditGoToLineNumber);
|
gotoLineNumberToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainEditGoToLineNumber);
|
||||||
|
|
||||||
|
fixToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainToolsFixCommonErrors);
|
||||||
|
|
||||||
showhideVideoToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainVideoShowHideVideo);
|
showhideVideoToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainVideoShowHideVideo);
|
||||||
toolStripMenuItemAdjustAllTimes.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationAdjustTimes);
|
toolStripMenuItemAdjustAllTimes.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationAdjustTimes);
|
||||||
italicToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainListViewItalic);
|
italicToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainListViewItalic);
|
||||||
italicToolStripMenuItem1.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainTextBoxItalic);
|
italicToolStripMenuItem1.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainTextBoxItalic);
|
||||||
}
|
}
|
||||||
|
|
||||||
//testing PLUGINS!
|
|
||||||
private void LoadPlugins()
|
private void LoadPlugins()
|
||||||
{
|
{
|
||||||
string path = Path.Combine(Configuration.BaseDirectory, "Plugins");
|
string path = Path.Combine(Configuration.BaseDirectory, "Plugins");
|
||||||
@ -9726,6 +9729,11 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
ShowStatus(string.Format(_language.VideoControls.NewTextInsertAtX, newParagraph.StartTime.ToShortString()));
|
ShowStatus(string.Format(_language.VideoControls.NewTextInsertAtX, newParagraph.StartTime.ToShortString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void editSelectAllToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < SubtitleListview1.Items.Count; i++)
|
||||||
|
SubtitleListview1.Items[i].Selected = true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -684,7 +684,7 @@
|
|||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
|
||||||
CAAAAk1TRnQBSQFMAgEBAgEAASABBAEgAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
CAAAAk1TRnQBSQFMAgEBAgEAATgBBAE4AQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
@ -431,6 +431,10 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
editNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.Edit.GoToSubtitleNumber + GetShortcutText(Configuration.Settings.Shortcuts.MainEditGoToLineNumber));
|
editNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.Edit.GoToSubtitleNumber + GetShortcutText(Configuration.Settings.Shortcuts.MainEditGoToLineNumber));
|
||||||
treeViewShortcuts.Nodes.Add(editNode);
|
treeViewShortcuts.Nodes.Add(editNode);
|
||||||
|
|
||||||
|
TreeNode toolsNode = new TreeNode(Configuration.Settings.Language.Main.Menu.Tools.Title);
|
||||||
|
toolsNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.Tools.FixCommonErrors + GetShortcutText(Configuration.Settings.Shortcuts.MainToolsFixCommonErrors));
|
||||||
|
treeViewShortcuts.Nodes.Add(toolsNode);
|
||||||
|
|
||||||
//<MainVideoShowHideVideo>Control+Q</MainVideoShowHideVideo>
|
//<MainVideoShowHideVideo>Control+Q</MainVideoShowHideVideo>
|
||||||
TreeNode videoNode = new TreeNode(Configuration.Settings.Language.Main.Menu.Video.Title);
|
TreeNode videoNode = new TreeNode(Configuration.Settings.Language.Main.Menu.Video.Title);
|
||||||
videoNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.Video.ShowHideVideo + GetShortcutText(Configuration.Settings.Shortcuts.MainVideoShowHideVideo));
|
videoNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.Video.ShowHideVideo + GetShortcutText(Configuration.Settings.Shortcuts.MainVideoShowHideVideo));
|
||||||
@ -772,9 +776,19 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Main Tools
|
||||||
|
foreach (TreeNode node in treeViewShortcuts.Nodes[2].Nodes)
|
||||||
|
{
|
||||||
|
if (node.Text.Contains("["))
|
||||||
|
{
|
||||||
|
string text = node.Text.Substring(0, node.Text.IndexOf("[")).Trim();
|
||||||
|
if (text == Configuration.Settings.Language.Main.Menu.Tools.FixCommonErrors.Replace("&", string.Empty))
|
||||||
|
Configuration.Settings.Shortcuts.MainToolsFixCommonErrors = GetShortcut(node.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Main Video
|
//Main Video
|
||||||
foreach (TreeNode node in treeViewShortcuts.Nodes[2].Nodes)
|
foreach (TreeNode node in treeViewShortcuts.Nodes[3].Nodes)
|
||||||
{
|
{
|
||||||
if (node.Text.Contains("["))
|
if (node.Text.Contains("["))
|
||||||
{
|
{
|
||||||
@ -785,7 +799,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Main Sync
|
//Main Sync
|
||||||
foreach (TreeNode node in treeViewShortcuts.Nodes[3].Nodes)
|
foreach (TreeNode node in treeViewShortcuts.Nodes[4].Nodes)
|
||||||
{
|
{
|
||||||
if (node.Text.Contains("["))
|
if (node.Text.Contains("["))
|
||||||
{
|
{
|
||||||
@ -796,7 +810,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Main List view
|
//Main List view
|
||||||
foreach (TreeNode node in treeViewShortcuts.Nodes[4].Nodes)
|
foreach (TreeNode node in treeViewShortcuts.Nodes[5].Nodes)
|
||||||
{
|
{
|
||||||
if (node.Text.Contains("["))
|
if (node.Text.Contains("["))
|
||||||
{
|
{
|
||||||
@ -807,7 +821,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Main text box
|
//Main text box
|
||||||
foreach (TreeNode node in treeViewShortcuts.Nodes[5].Nodes)
|
foreach (TreeNode node in treeViewShortcuts.Nodes[6].Nodes)
|
||||||
{
|
{
|
||||||
if (node.Text.Contains("["))
|
if (node.Text.Contains("["))
|
||||||
{
|
{
|
||||||
|
@ -393,6 +393,7 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
public string MainEditFindNext { get; set; }
|
public string MainEditFindNext { get; set; }
|
||||||
public string MainEditReplace { get; set; }
|
public string MainEditReplace { get; set; }
|
||||||
public string MainEditGoToLineNumber { get; set; }
|
public string MainEditGoToLineNumber { get; set; }
|
||||||
|
public string MainToolsFixCommonErrors { get; set; }
|
||||||
public string MainVideoShowHideVideo { get; set; }
|
public string MainVideoShowHideVideo { get; set; }
|
||||||
public string MainSynchronizationAdjustTimes { get; set; }
|
public string MainSynchronizationAdjustTimes { get; set; }
|
||||||
public string MainListViewItalic { get; set; }
|
public string MainListViewItalic { get; set; }
|
||||||
@ -408,6 +409,7 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
MainEditFindNext = "F3";
|
MainEditFindNext = "F3";
|
||||||
MainEditReplace = "Control+H";
|
MainEditReplace = "Control+H";
|
||||||
MainEditGoToLineNumber = "Control+G";
|
MainEditGoToLineNumber = "Control+G";
|
||||||
|
MainToolsFixCommonErrors = "Control+Shift+F";
|
||||||
MainVideoShowHideVideo = "Control+Q";
|
MainVideoShowHideVideo = "Control+Q";
|
||||||
MainSynchronizationAdjustTimes = "Control+Shift+A";
|
MainSynchronizationAdjustTimes = "Control+Shift+A";
|
||||||
MainListViewItalic = "Control+I";
|
MainListViewItalic = "Control+I";
|
||||||
@ -997,6 +999,9 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
subNode = node.SelectSingleNode("MainEditGoToLineNumber");
|
subNode = node.SelectSingleNode("MainEditGoToLineNumber");
|
||||||
if (subNode != null)
|
if (subNode != null)
|
||||||
settings.Shortcuts.MainEditGoToLineNumber = subNode.InnerText;
|
settings.Shortcuts.MainEditGoToLineNumber = subNode.InnerText;
|
||||||
|
subNode = node.SelectSingleNode("MainToolsFixCommonErrors");
|
||||||
|
if (subNode != null)
|
||||||
|
settings.Shortcuts.MainToolsFixCommonErrors = subNode.InnerText;
|
||||||
subNode = node.SelectSingleNode("MainVideoShowHideVideo");
|
subNode = node.SelectSingleNode("MainVideoShowHideVideo");
|
||||||
if (subNode != null)
|
if (subNode != null)
|
||||||
settings.Shortcuts.MainVideoShowHideVideo = subNode.InnerText;
|
settings.Shortcuts.MainVideoShowHideVideo = subNode.InnerText;
|
||||||
@ -1207,6 +1212,7 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
textWriter.WriteElementString("MainEditFindNext", settings.Shortcuts.MainEditFindNext);
|
textWriter.WriteElementString("MainEditFindNext", settings.Shortcuts.MainEditFindNext);
|
||||||
textWriter.WriteElementString("MainEditReplace", settings.Shortcuts.MainEditReplace);
|
textWriter.WriteElementString("MainEditReplace", settings.Shortcuts.MainEditReplace);
|
||||||
textWriter.WriteElementString("MainEditGoToLineNumber", settings.Shortcuts.MainEditGoToLineNumber);
|
textWriter.WriteElementString("MainEditGoToLineNumber", settings.Shortcuts.MainEditGoToLineNumber);
|
||||||
|
textWriter.WriteElementString("MainToolsFixCommonErrors", settings.Shortcuts.MainToolsFixCommonErrors);
|
||||||
textWriter.WriteElementString("MainVideoShowHideVideo", settings.Shortcuts.MainVideoShowHideVideo);
|
textWriter.WriteElementString("MainVideoShowHideVideo", settings.Shortcuts.MainVideoShowHideVideo);
|
||||||
textWriter.WriteElementString("MainSynchronizationAdjustTimes", settings.Shortcuts.MainSynchronizationAdjustTimes);
|
textWriter.WriteElementString("MainSynchronizationAdjustTimes", settings.Shortcuts.MainSynchronizationAdjustTimes);
|
||||||
textWriter.WriteElementString("MainListViewItalic", settings.Shortcuts.MainEditGoToLineNumber);
|
textWriter.WriteElementString("MainListViewItalic", settings.Shortcuts.MainEditGoToLineNumber);
|
||||||
|
124
src/Logic/SubtitleFormats/AdobeEncoreWithLineNumbers.cs
Normal file
124
src/Logic/SubtitleFormats/AdobeEncoreWithLineNumbers.cs
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||||
|
{
|
||||||
|
class AdobeEncoreWithLineNumbers : SubtitleFormat
|
||||||
|
{
|
||||||
|
public override string Extension
|
||||||
|
{
|
||||||
|
get { return ".txt"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string Name
|
||||||
|
{
|
||||||
|
get { return "Adobe Encore w. line#"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool HasLineNumber
|
||||||
|
{
|
||||||
|
get { return false; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsTimeBased
|
||||||
|
{
|
||||||
|
get { return true; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsMine(List<string> lines, string fileName)
|
||||||
|
{
|
||||||
|
var subtitle = new Subtitle();
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
foreach (string line in lines)
|
||||||
|
sb.AppendLine(line);
|
||||||
|
if (sb.ToString().Contains("#INPOINT OUTPOINT PATH"))
|
||||||
|
return false; // Pinnacle Impression
|
||||||
|
|
||||||
|
LoadSubtitle(subtitle, lines, fileName);
|
||||||
|
return subtitle.Paragraphs.Count > _errorCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToText(Subtitle subtitle, string title)
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
int index = 0;
|
||||||
|
foreach (Paragraph p in subtitle.Paragraphs)
|
||||||
|
{
|
||||||
|
//00:03:15:22 00:03:23:10 This is line one.
|
||||||
|
//This is line two.
|
||||||
|
sb.AppendLine(string.Format("{0} {1} {2} {3}", index+1, EncodeTimeCode(p.StartTime), EncodeTimeCode(p.EndTime), Utilities.RemoveHtmlTags(p.Text)));
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private string EncodeTimeCode(TimeCode time)
|
||||||
|
{
|
||||||
|
//00:03:15:22 (last is frame)
|
||||||
|
int frames = time.Milliseconds / (1000 / 30);
|
||||||
|
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", time.Hours, time.Minutes, time.Seconds, frames);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
|
||||||
|
{
|
||||||
|
//00:03:15:22 00:03:23:10 This is line one.
|
||||||
|
//This is line two.
|
||||||
|
Paragraph p = null;
|
||||||
|
subtitle.Paragraphs.Clear();
|
||||||
|
var regexTimeCodes = new Regex(@"^\d+ \d\d:\d\d:\d\d:\d\d \d\d:\d\d:\d\d:\d\d ", RegexOptions.Compiled);
|
||||||
|
foreach (string line in lines)
|
||||||
|
{
|
||||||
|
if (regexTimeCodes.IsMatch(line))
|
||||||
|
{
|
||||||
|
string temp = line.Substring(0, regexTimeCodes.Match(line).Length);
|
||||||
|
temp = line.Substring(line.IndexOf(" ")).Trim();
|
||||||
|
string start = temp.Substring(0, 11);
|
||||||
|
string end = temp.Substring(12, 11);
|
||||||
|
|
||||||
|
string[] startParts = start.Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
string[] endParts = end.Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
if (startParts.Length == 4 && endParts.Length == 4)
|
||||||
|
{
|
||||||
|
string text = line.Remove(0, regexTimeCodes.Match(line).Length - 1).Trim();
|
||||||
|
p = new Paragraph(DecodeTimeCode(startParts), DecodeTimeCode(endParts), text);
|
||||||
|
subtitle.Paragraphs.Add(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (line.Trim().Length == 0)
|
||||||
|
{
|
||||||
|
// skip these lines
|
||||||
|
}
|
||||||
|
else if (line.Trim().Length > 0 && p != null)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(p.Text))
|
||||||
|
p.Text = line;
|
||||||
|
else
|
||||||
|
p.Text = p.Text + Environment.NewLine + line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
subtitle.Renumber(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TimeCode DecodeTimeCode(string[] parts)
|
||||||
|
{
|
||||||
|
//00:00:07:12
|
||||||
|
string hour = parts[0];
|
||||||
|
string minutes = parts[1];
|
||||||
|
string seconds = parts[2];
|
||||||
|
string frames = parts[3];
|
||||||
|
|
||||||
|
int milliseconds = (int)((1000 / 30.0) * int.Parse(frames));
|
||||||
|
if (milliseconds > 999)
|
||||||
|
milliseconds = 999;
|
||||||
|
|
||||||
|
TimeCode tc = new TimeCode(int.Parse(hour), int.Parse(minutes), int.Parse(seconds), milliseconds);
|
||||||
|
return tc;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,6 +17,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
|||||||
new SubRip(),
|
new SubRip(),
|
||||||
new AdobeEncore(),
|
new AdobeEncore(),
|
||||||
new AdobeEncoreTab(),
|
new AdobeEncoreTab(),
|
||||||
|
new AdobeEncoreWithLineNumbers(),
|
||||||
new DCSubtitle(),
|
new DCSubtitle(),
|
||||||
new DvdStudioPro(),
|
new DvdStudioPro(),
|
||||||
new DvdSubtitle(),
|
new DvdSubtitle(),
|
||||||
|
@ -31,4 +31,4 @@ using System.Runtime.InteropServices;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("3.1.0.*")]
|
[assembly: AssemblyVersion("3.2.0.*")]
|
||||||
|
@ -517,6 +517,7 @@
|
|||||||
<Compile Include="Logic\StripableText.cs" />
|
<Compile Include="Logic\StripableText.cs" />
|
||||||
<Compile Include="Logic\SubtitleFormats\AdobeEncore.cs" />
|
<Compile Include="Logic\SubtitleFormats\AdobeEncore.cs" />
|
||||||
<Compile Include="Logic\SubtitleFormats\AdobeEncoreTabs.cs" />
|
<Compile Include="Logic\SubtitleFormats\AdobeEncoreTabs.cs" />
|
||||||
|
<Compile Include="Logic\SubtitleFormats\AdobeEncoreWithLineNumbers.cs" />
|
||||||
<Compile Include="Logic\SubtitleFormats\Cavena890.cs" />
|
<Compile Include="Logic\SubtitleFormats\Cavena890.cs" />
|
||||||
<Compile Include="Logic\SubtitleFormats\DCSubtitle.cs" />
|
<Compile Include="Logic\SubtitleFormats\DCSubtitle.cs" />
|
||||||
<Compile Include="Logic\SubtitleFormats\FinalCutProTextXml.cs" />
|
<Compile Include="Logic\SubtitleFormats\FinalCutProTextXml.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user