Work on "override tags on selection"

This commit is contained in:
niksedk 2021-06-20 07:46:00 +02:00
parent 629e39980c
commit b5b3bc539a
21 changed files with 1809 additions and 206 deletions

View File

@ -506,6 +506,7 @@ namespace Nikse.SubtitleEdit.Core.Common
public class SubtitleSettings public class SubtitleSettings
{ {
public List<AssaStorageCategory> AssaStyleStorageCategories { get; set; } public List<AssaStorageCategory> AssaStyleStorageCategories { get; set; }
public List<string> AssaOverrideTagHistory { get; set; }
public string DCinemaFontFile { get; set; } public string DCinemaFontFile { get; set; }
public string DCinemaLoadFontResource { get; set; } public string DCinemaLoadFontResource { get; set; }
@ -579,6 +580,7 @@ namespace Nikse.SubtitleEdit.Core.Common
public SubtitleSettings() public SubtitleSettings()
{ {
AssaStyleStorageCategories = new List<AssaStorageCategory>(); AssaStyleStorageCategories = new List<AssaStorageCategory>();
AssaOverrideTagHistory = new List<string>();
DCinemaFontFile = "Arial.ttf"; DCinemaFontFile = "Arial.ttf";
DCinemaLoadFontResource = "urn:uuid:3dec6dc0-39d0-498d-97d0-928d2eb78391"; DCinemaLoadFontResource = "urn:uuid:3dec6dc0-39d0-498d-97d0-928d2eb78391";
@ -2039,6 +2041,7 @@ $HorzAlign = Center
public string MainListViewColumnTextDown { get; set; } public string MainListViewColumnTextDown { get; set; }
public string MainListViewGoToNextError { get; set; } public string MainListViewGoToNextError { get; set; }
public string MainListViewRemoveBlankLines { get; set; } public string MainListViewRemoveBlankLines { get; set; }
public string ApplyAssaOverrideTags { get; set; }
public string MainListViewRemoveTimeCodes { get; set; } public string MainListViewRemoveTimeCodes { get; set; }
public string MainTextBoxSplitAtCursor { get; set; } public string MainTextBoxSplitAtCursor { get; set; }
public string MainTextBoxSplitAtCursorAndVideoPos { get; set; } public string MainTextBoxSplitAtCursorAndVideoPos { get; set; }
@ -5258,6 +5261,15 @@ $HorzAlign = Center
} }
} }
foreach (XmlNode tagNode in node.SelectNodes("AssaApplyOverrideTags/Tag"))
{
var tag = tagNode.InnerText;
if (!string.IsNullOrWhiteSpace(tag))
{
settings.SubtitleSettings.AssaOverrideTagHistory.Add(tag);
}
}
subNode = node.SelectSingleNode("DCinemaFontFile"); subNode = node.SelectSingleNode("DCinemaFontFile");
if (subNode != null) if (subNode != null)
{ {
@ -7538,6 +7550,12 @@ $HorzAlign = Center
shortcuts.MainListViewRemoveBlankLines = subNode.InnerText; shortcuts.MainListViewRemoveBlankLines = subNode.InnerText;
} }
subNode = node.SelectSingleNode("ApplyAssaOverrideTags");
if (subNode != null)
{
shortcuts.ApplyAssaOverrideTags = subNode.InnerText;
}
subNode = node.SelectSingleNode("MainListViewRemoveTimeCodes"); subNode = node.SelectSingleNode("MainListViewRemoveTimeCodes");
if (subNode != null) if (subNode != null)
{ {
@ -8741,6 +8759,13 @@ $HorzAlign = Center
} }
textWriter.WriteEndElement(); textWriter.WriteEndElement();
textWriter.WriteStartElement("AssaApplyOverrideTags", string.Empty);
foreach (var tag in settings.SubtitleSettings.AssaOverrideTagHistory)
{
textWriter.WriteElementString("Tag", tag);
}
textWriter.WriteEndElement();
textWriter.WriteElementString("DCinemaFontFile", settings.SubtitleSettings.DCinemaFontFile); textWriter.WriteElementString("DCinemaFontFile", settings.SubtitleSettings.DCinemaFontFile);
textWriter.WriteElementString("DCinemaFontSize", settings.SubtitleSettings.DCinemaFontSize.ToString(CultureInfo.InvariantCulture)); textWriter.WriteElementString("DCinemaFontSize", settings.SubtitleSettings.DCinemaFontSize.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("DCinemaBottomMargin", settings.SubtitleSettings.DCinemaBottomMargin.ToString(CultureInfo.InvariantCulture)); textWriter.WriteElementString("DCinemaBottomMargin", settings.SubtitleSettings.DCinemaBottomMargin.ToString(CultureInfo.InvariantCulture));
@ -9172,6 +9197,7 @@ $HorzAlign = Center
textWriter.WriteElementString("MainListViewColumnTextDown", shortcuts.MainListViewColumnTextDown); textWriter.WriteElementString("MainListViewColumnTextDown", shortcuts.MainListViewColumnTextDown);
textWriter.WriteElementString("MainListViewGoToNextError", shortcuts.MainListViewGoToNextError); textWriter.WriteElementString("MainListViewGoToNextError", shortcuts.MainListViewGoToNextError);
textWriter.WriteElementString("MainListViewRemoveBlankLines", shortcuts.MainListViewRemoveBlankLines); textWriter.WriteElementString("MainListViewRemoveBlankLines", shortcuts.MainListViewRemoveBlankLines);
textWriter.WriteElementString("ApplyAssaOverrideTags", shortcuts.ApplyAssaOverrideTags);
textWriter.WriteElementString("MainListViewRemoveTimeCodes", shortcuts.MainListViewRemoveTimeCodes); textWriter.WriteElementString("MainListViewRemoveTimeCodes", shortcuts.MainListViewRemoveTimeCodes);
textWriter.WriteElementString("MainEditFixRTLViaUnicodeChars", shortcuts.MainEditFixRTLViaUnicodeChars); textWriter.WriteElementString("MainEditFixRTLViaUnicodeChars", shortcuts.MainEditFixRTLViaUnicodeChars);
textWriter.WriteElementString("MainEditRemoveRTLUnicodeChars", shortcuts.MainEditRemoveRTLUnicodeChars); textWriter.WriteElementString("MainEditRemoveRTLUnicodeChars", shortcuts.MainEditRemoveRTLUnicodeChars);

View File

@ -0,0 +1,193 @@

namespace Nikse.SubtitleEdit.Forms.Assa
{
partial class AdvancedSelectionHelper
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.comboBoxRule = new System.Windows.Forms.ComboBox();
this.listViewStyles = new System.Windows.Forms.ListView();
this.columnHeaderStyleName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.groupBoxPreview = new System.Windows.Forms.GroupBox();
this.listViewFixes = new System.Windows.Forms.ListView();
this.columnHeaderApply = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeaderLine = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeaderText = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeaderStyle = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonOK = new System.Windows.Forms.Button();
this.groupBoxPreview.SuspendLayout();
this.SuspendLayout();
//
// comboBoxRule
//
this.comboBoxRule.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxRule.FormattingEnabled = true;
this.comboBoxRule.Items.AddRange(new object[] {
"Contains",
"Starts with",
"Ends with",
"Not contains",
"RegEx"});
this.comboBoxRule.Location = new System.Drawing.Point(12, 32);
this.comboBoxRule.Name = "comboBoxRule";
this.comboBoxRule.Size = new System.Drawing.Size(308, 21);
this.comboBoxRule.TabIndex = 4;
this.comboBoxRule.SelectedIndexChanged += new System.EventHandler(this.comboBoxRule_SelectedIndexChanged);
//
// listViewStyles
//
this.listViewStyles.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.listViewStyles.CheckBoxes = true;
this.listViewStyles.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeaderStyleName});
this.listViewStyles.FullRowSelect = true;
this.listViewStyles.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listViewStyles.HideSelection = false;
this.listViewStyles.Location = new System.Drawing.Point(12, 59);
this.listViewStyles.Name = "listViewStyles";
this.listViewStyles.Size = new System.Drawing.Size(308, 425);
this.listViewStyles.TabIndex = 5;
this.listViewStyles.UseCompatibleStateImageBehavior = false;
this.listViewStyles.View = System.Windows.Forms.View.Details;
this.listViewStyles.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewStyles_ItemChecked);
//
// groupBoxPreview
//
this.groupBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBoxPreview.Controls.Add(this.listViewFixes);
this.groupBoxPreview.Location = new System.Drawing.Point(326, 32);
this.groupBoxPreview.Name = "groupBoxPreview";
this.groupBoxPreview.Size = new System.Drawing.Size(681, 455);
this.groupBoxPreview.TabIndex = 7;
this.groupBoxPreview.TabStop = false;
this.groupBoxPreview.Text = "Matching lines";
//
// listViewFixes
//
this.listViewFixes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listViewFixes.CheckBoxes = true;
this.listViewFixes.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeaderApply,
this.columnHeaderLine,
this.columnHeaderText,
this.columnHeaderStyle});
this.listViewFixes.FullRowSelect = true;
this.listViewFixes.HideSelection = false;
this.listViewFixes.Location = new System.Drawing.Point(3, 16);
this.listViewFixes.Name = "listViewFixes";
this.listViewFixes.Size = new System.Drawing.Size(675, 436);
this.listViewFixes.TabIndex = 1;
this.listViewFixes.UseCompatibleStateImageBehavior = false;
this.listViewFixes.View = System.Windows.Forms.View.Details;
//
// columnHeaderApply
//
this.columnHeaderApply.Text = "Apply";
this.columnHeaderApply.Width = 50;
//
// columnHeaderLine
//
this.columnHeaderLine.Text = "Line#";
this.columnHeaderLine.Width = 80;
//
// columnHeaderText
//
this.columnHeaderText.Text = "Text";
this.columnHeaderText.Width = 450;
//
// columnHeaderStyle
//
this.columnHeaderStyle.Text = "Style";
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonCancel.Location = new System.Drawing.Point(932, 493);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
this.buttonCancel.TabIndex = 9;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
//
// buttonOK
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonOK.Location = new System.Drawing.Point(847, 493);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 23);
this.buttonOK.TabIndex = 8;
this.buttonOK.Text = "&OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// AdvancedSelectionHelper
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1019, 528);
this.Controls.Add(this.groupBoxPreview);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.comboBoxRule);
this.Controls.Add(this.listViewStyles);
this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(1000, 567);
this.Name = "AdvancedSelectionHelper";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "AdvancedSelectionHelper";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.AdvancedSelectionHelper_KeyDown);
this.groupBoxPreview.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ComboBox comboBoxRule;
private System.Windows.Forms.ListView listViewStyles;
private System.Windows.Forms.ColumnHeader columnHeaderStyleName;
private System.Windows.Forms.GroupBox groupBoxPreview;
private System.Windows.Forms.ListView listViewFixes;
private System.Windows.Forms.ColumnHeader columnHeaderApply;
private System.Windows.Forms.ColumnHeader columnHeaderLine;
private System.Windows.Forms.ColumnHeader columnHeaderText;
private System.Windows.Forms.ColumnHeader columnHeaderStyle;
private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.Button buttonOK;
}
}

View File

@ -0,0 +1,191 @@
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.SubtitleFormats;
using Nikse.SubtitleEdit.Logic;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Nikse.SubtitleEdit.Forms.Assa
{
public partial class AdvancedSelectionHelper : Form
{
public int[] Indices { get; private set; }
private readonly Subtitle _subtitle;
private bool _loading;
private const int FunctionStyle = 0;
private const int FunctionActor = 1;
public AdvancedSelectionHelper(Subtitle subtitle)
{
UiUtil.PreInitialize(this);
InitializeComponent();
UiUtil.FixFonts(this);
_loading = true;
_subtitle = subtitle;
Indices = new int[0];
buttonOK.Text = LanguageSettings.Current.General.Ok;
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
columnHeaderApply.Text = LanguageSettings.Current.General.Apply;
columnHeaderLine.Text = LanguageSettings.Current.General.LineNumber;
columnHeaderText.Text = LanguageSettings.Current.General.Text;
UiUtil.FixLargeFonts(this, buttonOK);
comboBoxRule.Items.Clear();
comboBoxRule.Items.Add(LanguageSettings.Current.General.Style);
comboBoxRule.Items.Add(LanguageSettings.Current.General.Actor);
comboBoxRule.SelectedIndex = 0;
_loading = false;
Preview();
}
private void Preview()
{
if (_loading)
{
return;
}
var listViewItems = new List<ListViewItem>();
listViewFixes.BeginUpdate();
listViewFixes.Items.Clear();
var styles = new List<string>();
var actors = new List<string>();
if (comboBoxRule.SelectedIndex == FunctionStyle) // Select styles
{
foreach (ListViewItem item in listViewStyles.Items)
{
if (item != null && item.Checked)
{
styles.Add(item.Text);
}
}
}
else if (comboBoxRule.SelectedIndex == FunctionActor) // Select actors
{
foreach (ListViewItem item in listViewStyles.Items)
{
if (item != null && item.Checked)
{
actors.Add(item.Text);
}
}
}
var indices = new List<int>();
for (int i = 0; i < _subtitle.Paragraphs.Count; i++)
{
var p = _subtitle.Paragraphs[i];
if (comboBoxRule.SelectedIndex == FunctionStyle) // Select styles
{
if (styles.Contains(string.IsNullOrEmpty(p.Style) ? p.Extra : p.Style))
{
listViewItems.Add(MakeListViewItem(p, i));
indices.Add(i);
}
}
else if (comboBoxRule.SelectedIndex == FunctionActor) // Select actors
{
if (actors.Contains(p.Actor))
{
listViewItems.Add(MakeListViewItem(p, i));
indices.Add(i);
}
}
}
Indices = indices.ToArray();
listViewFixes.Items.AddRange(listViewItems.ToArray());
listViewFixes.EndUpdate();
groupBoxPreview.Text = string.Format(LanguageSettings.Current.ModifySelection.MatchingLinesX, listViewFixes.Items.Count);
listViewFixes.AutoSizeLastColumn();
}
private ListViewItem MakeListViewItem(Paragraph p, int index)
{
var item = new ListViewItem(string.Empty) { Tag = index, Checked = true };
item.SubItems.Add(p.Number.ToString());
item.SubItems.Add(UiUtil.GetListViewTextFromString(p.Text));
item.SubItems.Add(string.IsNullOrEmpty(p.Style) ? p.Extra : p.Style);
return item;
}
private void comboBoxRule_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (comboBoxRule.SelectedIndex == FunctionStyle)
{
listViewStyles.Visible = true;
listViewStyles.BringToFront();
FillStyles();
}
else if (comboBoxRule.SelectedIndex == FunctionActor)
{
listViewStyles.Visible = true;
listViewStyles.BringToFront();
FillActors();
}
Preview();
}
private void FillStyles()
{
listViewStyles.AutoSizeLastColumn();
var styles = AdvancedSubStationAlpha.GetStylesFromHeader(_subtitle.Header);
var oldLoading = _loading;
_loading = true;
listViewStyles.Items.Clear();
listViewStyles.Items.AddRange(styles.OrderBy(p => p).Select(p => new ListViewItem { Text = p }).ToArray());
_loading = oldLoading;
}
private void FillActors()
{
listViewStyles.AutoSizeLastColumn();
var actors = new List<string>();
foreach (var paragraph in _subtitle.Paragraphs)
{
if (!string.IsNullOrEmpty(paragraph.Actor) && !actors.Contains(paragraph.Actor))
{
actors.Add(paragraph.Actor);
}
}
var oldLoading = _loading;
_loading = true;
listViewStyles.Items.Clear();
listViewStyles.Items.AddRange(actors.OrderBy(p => p).Select(p => new ListViewItem { Text = p }).ToArray());
_loading = oldLoading;
}
private void listViewStyles_ItemChecked(object sender, ItemCheckedEventArgs e)
{
Preview();
}
private void buttonCancel_Click(object sender, System.EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
private void buttonOK_Click(object sender, System.EventArgs e)
{
DialogResult = DialogResult.OK;
}
private void AdvancedSelectionHelper_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
DialogResult = DialogResult.Cancel;
}
else if (e.KeyData == UiUtil.HelpKeys)
{
UiUtil.ShowHelp(string.Empty);
e.SuppressKeyPress = true;
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,239 @@

namespace Nikse.SubtitleEdit.Forms.Assa
{
partial class ApplyCustomStyles
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.labelAdvancedSelection = new System.Windows.Forms.Label();
this.buttonAdvancedSelection = new System.Windows.Forms.Button();
this.radioButtonAdvancedSelection = new System.Windows.Forms.RadioButton();
this.radioButtonAllLines = new System.Windows.Forms.RadioButton();
this.radioButtonSelectedLines = new System.Windows.Forms.RadioButton();
this.groupBoxPreview = new System.Windows.Forms.GroupBox();
this.labelOverrideTags = new System.Windows.Forms.Label();
this.buttonOK = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonHistory = new System.Windows.Forms.Button();
this.seTextBox1 = new Nikse.SubtitleEdit.Controls.SETextBox();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.labelAdvancedSelection);
this.groupBox1.Controls.Add(this.buttonAdvancedSelection);
this.groupBox1.Controls.Add(this.radioButtonAdvancedSelection);
this.groupBox1.Controls.Add(this.radioButtonAllLines);
this.groupBox1.Controls.Add(this.radioButtonSelectedLines);
this.groupBox1.Location = new System.Drawing.Point(540, 40);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(246, 156);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Apply to";
//
// labelAdvancedSelection
//
this.labelAdvancedSelection.AutoSize = true;
this.labelAdvancedSelection.Location = new System.Drawing.Point(24, 87);
this.labelAdvancedSelection.Name = "labelAdvancedSelection";
this.labelAdvancedSelection.Size = new System.Drawing.Size(122, 13);
this.labelAdvancedSelection.TabIndex = 7;
this.labelAdvancedSelection.Text = "labelAdvancedSelection";
//
// buttonAdvancedSelection
//
this.buttonAdvancedSelection.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonAdvancedSelection.Location = new System.Drawing.Point(132, 64);
this.buttonAdvancedSelection.Name = "buttonAdvancedSelection";
this.buttonAdvancedSelection.Size = new System.Drawing.Size(29, 23);
this.buttonAdvancedSelection.TabIndex = 7;
this.buttonAdvancedSelection.Text = "...";
this.buttonAdvancedSelection.UseVisualStyleBackColor = true;
this.buttonAdvancedSelection.Click += new System.EventHandler(this.buttonAdvancedSelection_Click);
//
// radioButtonAdvancedSelection
//
this.radioButtonAdvancedSelection.AutoSize = true;
this.radioButtonAdvancedSelection.Location = new System.Drawing.Point(7, 67);
this.radioButtonAdvancedSelection.Name = "radioButtonAdvancedSelection";
this.radioButtonAdvancedSelection.Size = new System.Drawing.Size(119, 17);
this.radioButtonAdvancedSelection.TabIndex = 2;
this.radioButtonAdvancedSelection.TabStop = true;
this.radioButtonAdvancedSelection.Text = "Advanced selection";
this.radioButtonAdvancedSelection.UseVisualStyleBackColor = true;
this.radioButtonAdvancedSelection.CheckedChanged += new System.EventHandler(this.radioButtonAdvancedSelection_CheckedChanged);
//
// radioButtonAllLines
//
this.radioButtonAllLines.AutoSize = true;
this.radioButtonAllLines.Location = new System.Drawing.Point(7, 44);
this.radioButtonAllLines.Name = "radioButtonAllLines";
this.radioButtonAllLines.Size = new System.Drawing.Size(60, 17);
this.radioButtonAllLines.TabIndex = 1;
this.radioButtonAllLines.TabStop = true;
this.radioButtonAllLines.Text = "All lines";
this.radioButtonAllLines.UseVisualStyleBackColor = true;
//
// radioButtonSelectedLines
//
this.radioButtonSelectedLines.AutoSize = true;
this.radioButtonSelectedLines.Location = new System.Drawing.Point(7, 20);
this.radioButtonSelectedLines.Name = "radioButtonSelectedLines";
this.radioButtonSelectedLines.Size = new System.Drawing.Size(102, 17);
this.radioButtonSelectedLines.TabIndex = 0;
this.radioButtonSelectedLines.TabStop = true;
this.radioButtonSelectedLines.Text = "Selected lines: x";
this.radioButtonSelectedLines.UseVisualStyleBackColor = true;
//
// groupBoxPreview
//
this.groupBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBoxPreview.Location = new System.Drawing.Point(12, 211);
this.groupBoxPreview.Name = "groupBoxPreview";
this.groupBoxPreview.Size = new System.Drawing.Size(774, 394);
this.groupBoxPreview.TabIndex = 2;
this.groupBoxPreview.TabStop = false;
this.groupBoxPreview.Text = "Preview";
//
// labelOverrideTags
//
this.labelOverrideTags.AutoSize = true;
this.labelOverrideTags.Location = new System.Drawing.Point(13, 21);
this.labelOverrideTags.Name = "labelOverrideTags";
this.labelOverrideTags.Size = new System.Drawing.Size(71, 13);
this.labelOverrideTags.TabIndex = 3;
this.labelOverrideTags.Text = "Tags to apply";
//
// buttonOK
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonOK.Location = new System.Drawing.Point(630, 611);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 23);
this.buttonOK.TabIndex = 4;
this.buttonOK.Text = "&OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonCancel.Location = new System.Drawing.Point(711, 611);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
this.buttonCancel.TabIndex = 5;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
//
// buttonHistory
//
this.buttonHistory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonHistory.Location = new System.Drawing.Point(415, 11);
this.buttonHistory.Name = "buttonHistory";
this.buttonHistory.Size = new System.Drawing.Size(119, 23);
this.buttonHistory.TabIndex = 6;
this.buttonHistory.Text = "History";
this.buttonHistory.UseVisualStyleBackColor = true;
this.buttonHistory.Click += new System.EventHandler(this.buttonHistory_Click);
//
// seTextBox1
//
this.seTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.seTextBox1.BackColor = System.Drawing.SystemColors.WindowFrame;
this.seTextBox1.CurrentLanguage = "";
this.seTextBox1.CurrentLineIndex = 0;
this.seTextBox1.HideSelection = true;
this.seTextBox1.IsDictionaryDownloaded = true;
this.seTextBox1.IsSpellCheckerInitialized = false;
this.seTextBox1.IsSpellCheckRequested = false;
this.seTextBox1.IsWrongWord = false;
this.seTextBox1.LanguageChanged = false;
this.seTextBox1.Location = new System.Drawing.Point(12, 40);
this.seTextBox1.Multiline = true;
this.seTextBox1.Name = "seTextBox1";
this.seTextBox1.Padding = new System.Windows.Forms.Padding(1);
this.seTextBox1.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
this.seTextBox1.SelectedText = "";
this.seTextBox1.SelectionLength = 0;
this.seTextBox1.SelectionStart = 0;
this.seTextBox1.Size = new System.Drawing.Size(522, 156);
this.seTextBox1.TabIndex = 0;
//
// ApplyCustomStyles
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(798, 646);
this.Controls.Add(this.buttonHistory);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.labelOverrideTags);
this.Controls.Add(this.groupBoxPreview);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.seTextBox1);
this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(800, 600);
this.Name = "ApplyCustomStyles";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "ApplyCustomStyles";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ApplyCustomStyles_KeyDown);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private Controls.SETextBox seTextBox1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBoxPreview;
private System.Windows.Forms.Label labelOverrideTags;
private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.Button buttonHistory;
private System.Windows.Forms.Label labelAdvancedSelection;
private System.Windows.Forms.Button buttonAdvancedSelection;
private System.Windows.Forms.RadioButton radioButtonAdvancedSelection;
private System.Windows.Forms.RadioButton radioButtonAllLines;
private System.Windows.Forms.RadioButton radioButtonSelectedLines;
}
}

View File

@ -0,0 +1,290 @@
using Nikse.SubtitleEdit.Controls;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Logic;
using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace Nikse.SubtitleEdit.Forms.Assa
{
public partial class ApplyCustomStyles : Form
{
public Subtitle UpdatedSubtitle { get; private set; }
private Subtitle _subtitle;
private ListBox _intellisenceList;
private int[] _selectedIndices;
private int[] _advancedIndices;
private Keys MainTextBoxAssaIntellisense { get; set; }
private Keys MainTextBoxAssaRemoveTag { get; set; }
public ApplyCustomStyles(Subtitle subtitle, int[] selectedIndices)
{
UiUtil.PreInitialize(this);
InitializeComponent();
UiUtil.FixFonts(this);
_subtitle = subtitle;
_selectedIndices = selectedIndices;
_advancedIndices = new int[0];
radioButtonSelectedLines.Checked = true;
labelAdvancedSelection.Text = string.Empty;
MainTextBoxAssaIntellisense = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainTextBoxAssaIntellisense);
MainTextBoxAssaRemoveTag = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainTextBoxAssaRemoveTag);
buttonOK.Text = LanguageSettings.Current.General.Ok;
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
UiUtil.FixLargeFonts(this, buttonOK);
buttonHistory.Enabled = Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.Count > 0;
if (Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.Count > 0)
{
seTextBox1.Text = Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory[0];
}
radioButtonAdvancedSelection_CheckedChanged(null, null);
radioButtonSelectedLines.Text = string.Format("Selected lines: {0}", _selectedIndices.Length);
}
private void ApplyCustomStyles_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
if (_intellisenceList != null && _intellisenceList.Focused)
{
return;
}
DialogResult = DialogResult.Cancel;
}
else if (e.KeyData == UiUtil.HelpKeys)
{
if (_intellisenceList != null && _intellisenceList.Focused)
{
return;
}
UiUtil.OpenUrl("https://www.nikse.dk/SubtitleEdit/AssaOverrideTags");
e.SuppressKeyPress = true;
}
else if (MainTextBoxAssaIntellisense == e.KeyData)
{
if (_intellisenceList != null && _intellisenceList.Focused)
{
_intellisenceList.Hide();
}
else
{
_intellisenceList = DoIntellisense(seTextBox1, _intellisenceList);
}
e.SuppressKeyPress = true;
}
else if (MainTextBoxAssaRemoveTag == e.KeyData)
{
AssaTagHelper.RemoveTagAtCursor(seTextBox1);
e.SuppressKeyPress = true;
}
}
private ListBox DoIntellisense(SETextBox tb, ListBox intellisenseListBox)
{
if (intellisenseListBox == null)
{
intellisenseListBox = new ListBox();
Controls.Add(intellisenseListBox);
intellisenseListBox.PreviewKeyDown += (o, args) =>
{
if (args.KeyCode == Keys.Tab && intellisenseListBox.SelectedIndex >= 0)
{
var item = intellisenseListBox.Items[intellisenseListBox.SelectedIndex] as AssaTagHelper.IntellisenseItem;
if (item != null)
{
AssaTagHelper.CompleteItem(tb, item);
}
intellisenseListBox.Hide();
System.Threading.SynchronizationContext.Current.Post(TimeSpan.FromMilliseconds(10), () => tb.Focus());
}
};
intellisenseListBox.KeyDown += (o, args) =>
{
if (args.KeyCode == Keys.Enter && intellisenseListBox.SelectedIndex >= 0)
{
var item = intellisenseListBox.Items[intellisenseListBox.SelectedIndex] as AssaTagHelper.IntellisenseItem;
if (item != null)
{
AssaTagHelper.CompleteItem(tb, item);
}
args.SuppressKeyPress = true;
args.Handled = true;
intellisenseListBox.Hide();
tb.Focus();
}
else if (args.KeyCode == Keys.Escape || MainTextBoxAssaIntellisense == args.KeyData)
{
args.SuppressKeyPress = true;
args.Handled = true;
intellisenseListBox.Hide();
tb.Focus();
}
};
intellisenseListBox.Click += (o, args) =>
{
int index = intellisenseListBox.IndexFromPoint((args as MouseEventArgs).Location);
if (index != ListBox.NoMatches)
{
var item = intellisenseListBox.Items[index] as AssaTagHelper.IntellisenseItem;
if (item != null)
{
AssaTagHelper.CompleteItem(tb, item);
}
intellisenseListBox.Hide();
tb.Focus();
}
};
intellisenseListBox.KeyPress += (o, args) =>
{
var x = args.KeyChar.ToString();
if (!string.IsNullOrEmpty(x) && x != "\r" && x != "\n" && x != "\u001b" && x != " ")
{
if (x == "{")
{
x = "{{}";
}
else if (x == "}")
{
x = "{}}";
}
tb.Focus();
SendKeys.SendWait(x);
args.Handled = true;
AssaTagHelper.AutoCompleteTextBox(tb, intellisenseListBox);
intellisenseListBox.Focus();
}
};
intellisenseListBox.LostFocus += (o, args) => intellisenseListBox.Hide();
}
if (AssaTagHelper.AutoCompleteTextBox(tb, intellisenseListBox))
{
var p = GetPositionInForm(tb);
intellisenseListBox.Location = new Point(p.X + 10, p.Y + 40); //TODO: improve position
intellisenseListBox.Show();
intellisenseListBox.BringToFront();
intellisenseListBox.Focus();
}
return intellisenseListBox;
}
public Point GetPositionInForm(Control ctrl)
{
Point p = ctrl.Location;
Control parent = ctrl.Parent;
while (!(parent is Form))
{
p.Offset(parent.Location.X, parent.Location.Y);
parent = parent.Parent;
}
return p;
}
private void buttonOK_Click(object sender, EventArgs e)
{
ApplyOverrideTags(_subtitle, _selectedIndices);
DialogResult = DialogResult.OK;
}
private void ApplyOverrideTags(Subtitle subtitle, int[] selectedIndices)
{
var styleToApply = seTextBox1.Text;
if (string.IsNullOrWhiteSpace(styleToApply))
{
return;
}
Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory = Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory
.Where(p => p != styleToApply)
.ToList();
Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.Insert(0, styleToApply);
if (Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.Count > 25)
{
Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.RemoveAt(Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.Count - 1);
}
UpdatedSubtitle = new Subtitle(subtitle, false);
var indices = _selectedIndices;
if (radioButtonAllLines.Checked)
{
indices = Enumerable.Range(0, subtitle.Paragraphs.Count).ToArray();
}
else if (radioButtonAdvancedSelection.Checked)
{
indices = _advancedIndices;
}
for (int i = 0; i < UpdatedSubtitle.Paragraphs.Count; i++)
{
if (!indices.Contains(i))
{
continue;
}
Paragraph p = UpdatedSubtitle.Paragraphs[i];
if (p.Text.StartsWith("{\\", StringComparison.Ordinal) && styleToApply.EndsWith('}'))
{
p.Text = styleToApply.TrimEnd('}') + p.Text.Remove(0, 1);
}
else
{
p.Text = styleToApply + p.Text;
}
}
}
private void buttonCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
private void buttonHistory_Click(object sender, EventArgs e)
{
using (var form = new TagHistory())
{
if (form.ShowDialog(this) != DialogResult.OK)
{
return;
}
seTextBox1.Text = form.HistoryStyle;
seTextBox1.Focus();
}
}
private void buttonAdvancedSelection_Click(object sender, EventArgs e)
{
using (var form = new AdvancedSelectionHelper(_subtitle))
{
if (form.ShowDialog(this) != DialogResult.OK)
{
return;
}
_advancedIndices = form.Indices;
labelAdvancedSelection.Text = string.Format("Lines selected: {0}", _advancedIndices.Length);
}
}
private void radioButtonAdvancedSelection_CheckedChanged(object sender, EventArgs e)
{
buttonAdvancedSelection.Enabled = radioButtonAdvancedSelection.Checked;
labelAdvancedSelection.Enabled = radioButtonAdvancedSelection.Checked;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -35,15 +35,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.columnHeaderTag = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeaderTag = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeaderHint = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeaderHint = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.listViewTemplates = new System.Windows.Forms.ListView(); this.listViewTemplates = new System.Windows.Forms.ListView();
this.buttonRemove = new System.Windows.Forms.Button(); this.contextMenuStripFile = new System.Windows.Forms.ContextMenuStrip(this.components);
this.buttonAdd = new System.Windows.Forms.Button();
this.buttonRemoveAll = new System.Windows.Forms.Button();
this.buttonCopy = new System.Windows.Forms.Button();
this.textBoxTag = new System.Windows.Forms.TextBox();
this.labelTag = new System.Windows.Forms.Label();
this.groupBoxTemplateItem = new System.Windows.Forms.GroupBox();
this.textBoxHint = new System.Windows.Forms.TextBox();
this.labelHint = new System.Windows.Forms.Label();
this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemRemoveAll = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemRemoveAll = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
@ -54,9 +46,17 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.newToolStripMenuItemNew = new System.Windows.Forms.ToolStripMenuItem(); this.newToolStripMenuItemNew = new System.Windows.Forms.ToolStripMenuItem();
this.copyToolStripMenuItemCopy = new System.Windows.Forms.ToolStripMenuItem(); this.copyToolStripMenuItemCopy = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStripFile = new System.Windows.Forms.ContextMenuStrip(this.components); this.buttonRemove = new System.Windows.Forms.Button();
this.groupBoxTemplateItem.SuspendLayout(); this.buttonAdd = new System.Windows.Forms.Button();
this.buttonRemoveAll = new System.Windows.Forms.Button();
this.buttonCopy = new System.Windows.Forms.Button();
this.textBoxTag = new System.Windows.Forms.TextBox();
this.labelTag = new System.Windows.Forms.Label();
this.groupBoxTemplateItem = new System.Windows.Forms.GroupBox();
this.textBoxHint = new System.Windows.Forms.TextBox();
this.labelHint = new System.Windows.Forms.Label();
this.contextMenuStripFile.SuspendLayout(); this.contextMenuStripFile.SuspendLayout();
this.groupBoxTemplateItem.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// buttonOK // buttonOK
@ -115,6 +115,95 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.listViewTemplates.View = System.Windows.Forms.View.Details; this.listViewTemplates.View = System.Windows.Forms.View.Details;
this.listViewTemplates.SelectedIndexChanged += new System.EventHandler(this.listViewTemplates_SelectedIndexChanged); this.listViewTemplates.SelectedIndexChanged += new System.EventHandler(this.listViewTemplates_SelectedIndexChanged);
// //
// contextMenuStripFile
//
this.contextMenuStripFile.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.deleteToolStripMenuItem,
this.toolStripMenuItemRemoveAll,
this.toolStripSeparator8,
this.moveUpToolStripMenuItem,
this.moveDownToolStripMenuItem,
this.moveTopToolStripMenuItem,
this.moveBottomToolStripMenuItem,
this.toolStripSeparator3,
this.newToolStripMenuItemNew,
this.copyToolStripMenuItemCopy});
this.contextMenuStripFile.Name = "contextMenuStrip1";
this.contextMenuStripFile.Size = new System.Drawing.Size(216, 192);
//
// deleteToolStripMenuItem
//
this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
this.deleteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete;
this.deleteToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.deleteToolStripMenuItem.Text = "Remove";
this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click);
//
// toolStripMenuItemRemoveAll
//
this.toolStripMenuItemRemoveAll.Name = "toolStripMenuItemRemoveAll";
this.toolStripMenuItemRemoveAll.Size = new System.Drawing.Size(215, 22);
this.toolStripMenuItemRemoveAll.Text = "Remove all";
this.toolStripMenuItemRemoveAll.Click += new System.EventHandler(this.toolStripMenuItemRemoveAll_Click);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(212, 6);
//
// moveUpToolStripMenuItem
//
this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
this.moveUpToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Up)));
this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveUpToolStripMenuItem.Text = "Move up";
this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click);
//
// moveDownToolStripMenuItem
//
this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
this.moveDownToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Down)));
this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveDownToolStripMenuItem.Text = "Move down";
this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click);
//
// moveTopToolStripMenuItem
//
this.moveTopToolStripMenuItem.Name = "moveTopToolStripMenuItem";
this.moveTopToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Home)));
this.moveTopToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveTopToolStripMenuItem.Text = "Move to top";
this.moveTopToolStripMenuItem.Click += new System.EventHandler(this.moveTopToolStripMenuItem_Click);
//
// moveBottomToolStripMenuItem
//
this.moveBottomToolStripMenuItem.Name = "moveBottomToolStripMenuItem";
this.moveBottomToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.End)));
this.moveBottomToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveBottomToolStripMenuItem.Text = "Move to bottom";
this.moveBottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(212, 6);
//
// newToolStripMenuItemNew
//
this.newToolStripMenuItemNew.Name = "newToolStripMenuItemNew";
this.newToolStripMenuItemNew.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
this.newToolStripMenuItemNew.Size = new System.Drawing.Size(215, 22);
this.newToolStripMenuItemNew.Text = "New";
this.newToolStripMenuItemNew.Click += new System.EventHandler(this.newToolStripMenuItemNew_Click);
//
// copyToolStripMenuItemCopy
//
this.copyToolStripMenuItemCopy.Name = "copyToolStripMenuItemCopy";
this.copyToolStripMenuItemCopy.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
this.copyToolStripMenuItemCopy.Size = new System.Drawing.Size(215, 22);
this.copyToolStripMenuItemCopy.Text = "Copy";
this.copyToolStripMenuItemCopy.Click += new System.EventHandler(this.copyToolStripMenuItemCopy_Click);
//
// buttonRemove // buttonRemove
// //
this.buttonRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
@ -215,95 +304,6 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.labelHint.TabIndex = 213; this.labelHint.TabIndex = 213;
this.labelHint.Text = "Hint"; this.labelHint.Text = "Hint";
// //
// deleteToolStripMenuItem
//
this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
this.deleteToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete;
this.deleteToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.deleteToolStripMenuItem.Text = "Remove";
this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click);
//
// toolStripMenuItemRemoveAll
//
this.toolStripMenuItemRemoveAll.Name = "toolStripMenuItemRemoveAll";
this.toolStripMenuItemRemoveAll.Size = new System.Drawing.Size(215, 22);
this.toolStripMenuItemRemoveAll.Text = "Remove all";
this.toolStripMenuItemRemoveAll.Click += new System.EventHandler(this.toolStripMenuItemRemoveAll_Click);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(212, 6);
//
// moveUpToolStripMenuItem
//
this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
this.moveUpToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Up)));
this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveUpToolStripMenuItem.Text = "Move up";
this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click);
//
// moveDownToolStripMenuItem
//
this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
this.moveDownToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Down)));
this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveDownToolStripMenuItem.Text = "Move down";
this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click);
//
// moveTopToolStripMenuItem
//
this.moveTopToolStripMenuItem.Name = "moveTopToolStripMenuItem";
this.moveTopToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Home)));
this.moveTopToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveTopToolStripMenuItem.Text = "Move to top";
this.moveTopToolStripMenuItem.Click += new System.EventHandler(this.moveTopToolStripMenuItem_Click);
//
// moveBottomToolStripMenuItem
//
this.moveBottomToolStripMenuItem.Name = "moveBottomToolStripMenuItem";
this.moveBottomToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.End)));
this.moveBottomToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.moveBottomToolStripMenuItem.Text = "Move to bottom";
this.moveBottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(212, 6);
//
// newToolStripMenuItemNew
//
this.newToolStripMenuItemNew.Name = "newToolStripMenuItemNew";
this.newToolStripMenuItemNew.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
this.newToolStripMenuItemNew.Size = new System.Drawing.Size(215, 22);
this.newToolStripMenuItemNew.Text = "New";
this.newToolStripMenuItemNew.Click += new System.EventHandler(this.newToolStripMenuItemNew_Click);
//
// copyToolStripMenuItemCopy
//
this.copyToolStripMenuItemCopy.Name = "copyToolStripMenuItemCopy";
this.copyToolStripMenuItemCopy.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
this.copyToolStripMenuItemCopy.Size = new System.Drawing.Size(215, 22);
this.copyToolStripMenuItemCopy.Text = "Copy";
this.copyToolStripMenuItemCopy.Click += new System.EventHandler(this.copyToolStripMenuItemCopy_Click);
//
// contextMenuStripFile
//
this.contextMenuStripFile.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.deleteToolStripMenuItem,
this.toolStripMenuItemRemoveAll,
this.toolStripSeparator8,
this.moveUpToolStripMenuItem,
this.moveDownToolStripMenuItem,
this.moveTopToolStripMenuItem,
this.moveBottomToolStripMenuItem,
this.toolStripSeparator3,
this.newToolStripMenuItemNew,
this.copyToolStripMenuItemCopy});
this.contextMenuStripFile.Name = "contextMenuStrip1";
this.contextMenuStripFile.Size = new System.Drawing.Size(216, 192);
//
// AssaTagTemplate // AssaTagTemplate
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -320,15 +320,16 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.KeyPreview = true; this.KeyPreview = true;
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(900, 500);
this.Name = "AssaTagTemplate"; this.Name = "AssaTagTemplate";
this.ShowIcon = false; this.ShowIcon = false;
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "AssaTagTemplate"; this.Text = "AssaTagTemplate";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.AssaTagTemplate_KeyDown); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.AssaTagTemplate_KeyDown);
this.contextMenuStripFile.ResumeLayout(false);
this.groupBoxTemplateItem.ResumeLayout(false); this.groupBoxTemplateItem.ResumeLayout(false);
this.groupBoxTemplateItem.PerformLayout(); this.groupBoxTemplateItem.PerformLayout();
this.contextMenuStripFile.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
} }

127
src/ui/Forms/Assa/TagHistory.Designer.cs generated Normal file
View File

@ -0,0 +1,127 @@

namespace Nikse.SubtitleEdit.Forms.Assa
{
partial class TagHistory
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.seTextBoxOverrideStyle = new Nikse.SubtitleEdit.Controls.SETextBox();
this.listBoxHistory = new System.Windows.Forms.ListBox();
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonOK = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// seTextBoxOverrideStyle
//
this.seTextBoxOverrideStyle.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.seTextBoxOverrideStyle.BackColor = System.Drawing.SystemColors.WindowFrame;
this.seTextBoxOverrideStyle.CurrentLanguage = "";
this.seTextBoxOverrideStyle.CurrentLineIndex = 0;
this.seTextBoxOverrideStyle.HideSelection = true;
this.seTextBoxOverrideStyle.IsDictionaryDownloaded = true;
this.seTextBoxOverrideStyle.IsSpellCheckerInitialized = false;
this.seTextBoxOverrideStyle.IsSpellCheckRequested = false;
this.seTextBoxOverrideStyle.IsWrongWord = false;
this.seTextBoxOverrideStyle.LanguageChanged = false;
this.seTextBoxOverrideStyle.Location = new System.Drawing.Point(12, 254);
this.seTextBoxOverrideStyle.Multiline = true;
this.seTextBoxOverrideStyle.Name = "seTextBoxOverrideStyle";
this.seTextBoxOverrideStyle.Padding = new System.Windows.Forms.Padding(1);
this.seTextBoxOverrideStyle.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
this.seTextBoxOverrideStyle.SelectedText = "";
this.seTextBoxOverrideStyle.SelectionLength = 0;
this.seTextBoxOverrideStyle.SelectionStart = 0;
this.seTextBoxOverrideStyle.Size = new System.Drawing.Size(776, 152);
this.seTextBoxOverrideStyle.TabIndex = 0;
//
// listBoxHistory
//
this.listBoxHistory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listBoxHistory.FormattingEnabled = true;
this.listBoxHistory.Location = new System.Drawing.Point(12, 36);
this.listBoxHistory.Name = "listBoxHistory";
this.listBoxHistory.Size = new System.Drawing.Size(776, 212);
this.listBoxHistory.TabIndex = 1;
this.listBoxHistory.SelectedIndexChanged += new System.EventHandler(this.listBoxHistory_SelectedIndexChanged);
this.listBoxHistory.DoubleClick += new System.EventHandler(this.listBoxHistory_DoubleClick);
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonCancel.Location = new System.Drawing.Point(713, 415);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
this.buttonCancel.TabIndex = 217;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
//
// buttonOK
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonOK.Location = new System.Drawing.Point(632, 415);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 23);
this.buttonOK.TabIndex = 216;
this.buttonOK.Text = "&OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// TagHistory
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.listBoxHistory);
this.Controls.Add(this.seTextBoxOverrideStyle);
this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(816, 489);
this.Name = "TagHistory";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "TagHistory";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TagHistory_KeyDown);
this.ResumeLayout(false);
}
#endregion
private Controls.SETextBox seTextBoxOverrideStyle;
private System.Windows.Forms.ListBox listBoxHistory;
private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.Button buttonOK;
}
}

View File

@ -0,0 +1,92 @@
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Logic;
using System.Windows.Forms;
namespace Nikse.SubtitleEdit.Forms.Assa
{
public partial class TagHistory : Form
{
public string HistoryStyle { get; private set; }
public TagHistory()
{
UiUtil.PreInitialize(this);
InitializeComponent();
UiUtil.FixFonts(this);
buttonOK.Text = LanguageSettings.Current.General.Ok;
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
UiUtil.FixLargeFonts(this, buttonOK);
listBoxHistory.BeginUpdate();
foreach (var tag in Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory)
{
listBoxHistory.Items.Add(tag);
}
listBoxHistory.EndUpdate();
if (Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory.Count > 0)
{
listBoxHistory.SelectedIndex = 0;
}
seTextBoxOverrideStyle.KeyDown += SeTextBoxOverrideStyle_KeyDown;
}
private void SeTextBoxOverrideStyle_KeyDown(object sender, KeyEventArgs e)
{
e.SuppressKeyPress = true;
}
private void listBoxHistory_SelectedIndexChanged(object sender, System.EventArgs e)
{
var idx = listBoxHistory.SelectedIndex;
if (idx < 0)
{
seTextBoxOverrideStyle.Text = string.Empty;
return;
}
seTextBoxOverrideStyle.Text = Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory[idx];
}
private void buttonOK_Click(object sender, System.EventArgs e)
{
var idx = listBoxHistory.SelectedIndex;
if (idx < 0)
{
seTextBoxOverrideStyle.Text = string.Empty;
return;
}
HistoryStyle = Configuration.Settings.SubtitleSettings.AssaOverrideTagHistory[idx];
DialogResult = DialogResult.OK;
}
private void TagHistory_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
DialogResult = DialogResult.Cancel;
}
else if (e.KeyData == UiUtil.HelpKeys)
{
UiUtil.OpenUrl("https://www.nikse.dk/SubtitleEdit/AssaOverrideTags");
e.SuppressKeyPress = true;
}
else if (e.KeyData == Keys.Enter)
{
buttonOK_Click(null, null);
e.SuppressKeyPress = true;
}
}
private void listBoxHistory_DoubleClick(object sender, System.EventArgs e)
{
if (listBoxHistory.SelectedIndex != ListBox.NoMatches)
{
buttonOK_Click(null, null);
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -2387,6 +2387,11 @@ namespace Nikse.SubtitleEdit.Forms
listViewInputFiles.InverseSelection(); listViewInputFiles.InverseSelection();
e.SuppressKeyPress = true; e.SuppressKeyPress = true;
} }
else if (e.KeyData == UiUtil.HelpKeys)
{
UiUtil.ShowHelp("#batchconvert");
e.SuppressKeyPress = true;
}
} }
private void BatchConvert_FormClosing(object sender, FormClosingEventArgs e) private void BatchConvert_FormClosing(object sender, FormClosingEventArgs e)

View File

@ -272,6 +272,9 @@ namespace Nikse.SubtitleEdit.Forms
this.setStylesForSelectedLinesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.setStylesForSelectedLinesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.setActorForSelectedLinesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.setActorForSelectedLinesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemAssaOverrideTags = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemAssaOverrideTags = new System.Windows.Forms.ToolStripMenuItem();
this.applyCustomStylesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.fadeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.setPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemAssStyles = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemAssStyles = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparatorAssa = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparatorAssa = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItemSetRegion = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemSetRegion = new System.Windows.Forms.ToolStripMenuItem();
@ -2571,20 +2574,43 @@ namespace Nikse.SubtitleEdit.Forms
// //
this.setStylesForSelectedLinesToolStripMenuItem.Name = "setStylesForSelectedLinesToolStripMenuItem"; this.setStylesForSelectedLinesToolStripMenuItem.Name = "setStylesForSelectedLinesToolStripMenuItem";
this.setStylesForSelectedLinesToolStripMenuItem.Size = new System.Drawing.Size(284, 22); this.setStylesForSelectedLinesToolStripMenuItem.Size = new System.Drawing.Size(284, 22);
this.setStylesForSelectedLinesToolStripMenuItem.Text = "ASS: Set styles for selected lines..."; this.setStylesForSelectedLinesToolStripMenuItem.Text = "Set style";
// //
// setActorForSelectedLinesToolStripMenuItem // setActorForSelectedLinesToolStripMenuItem
// //
this.setActorForSelectedLinesToolStripMenuItem.Name = "setActorForSelectedLinesToolStripMenuItem"; this.setActorForSelectedLinesToolStripMenuItem.Name = "setActorForSelectedLinesToolStripMenuItem";
this.setActorForSelectedLinesToolStripMenuItem.Size = new System.Drawing.Size(284, 22); this.setActorForSelectedLinesToolStripMenuItem.Size = new System.Drawing.Size(284, 22);
this.setActorForSelectedLinesToolStripMenuItem.Text = "ASS: Set styles for selected lines..."; this.setActorForSelectedLinesToolStripMenuItem.Text = "Set actor";
// //
// toolStripMenuItemAssaOverrideTags // toolStripMenuItemAssaOverrideTags
// //
this.toolStripMenuItemAssaOverrideTags.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.applyCustomStylesToolStripMenuItem,
this.fadeToolStripMenuItem,
this.setPositionToolStripMenuItem});
this.toolStripMenuItemAssaOverrideTags.Name = "toolStripMenuItemAssaOverrideTags"; this.toolStripMenuItemAssaOverrideTags.Name = "toolStripMenuItemAssaOverrideTags";
this.toolStripMenuItemAssaOverrideTags.Size = new System.Drawing.Size(284, 22); this.toolStripMenuItemAssaOverrideTags.Size = new System.Drawing.Size(284, 22);
this.toolStripMenuItemAssaOverrideTags.Text = "Set override tags"; this.toolStripMenuItemAssaOverrideTags.Text = "Set override tags";
// //
// applyCustomStylesToolStripMenuItem
//
this.applyCustomStylesToolStripMenuItem.Name = "applyCustomStylesToolStripMenuItem";
this.applyCustomStylesToolStripMenuItem.Size = new System.Drawing.Size(182, 22);
this.applyCustomStylesToolStripMenuItem.Text = "Apply custom tags...";
this.applyCustomStylesToolStripMenuItem.Click += new System.EventHandler(this.applyCustomStylesToolStripMenuItem_Click);
//
// fadeToolStripMenuItem
//
this.fadeToolStripMenuItem.Name = "fadeToolStripMenuItem";
this.fadeToolStripMenuItem.Size = new System.Drawing.Size(182, 22);
this.fadeToolStripMenuItem.Text = "Fade...";
//
// setPositionToolStripMenuItem
//
this.setPositionToolStripMenuItem.Name = "setPositionToolStripMenuItem";
this.setPositionToolStripMenuItem.Size = new System.Drawing.Size(182, 22);
this.setPositionToolStripMenuItem.Text = "Set position...";
//
// toolStripMenuItemAssStyles // toolStripMenuItemAssStyles
// //
this.toolStripMenuItemAssStyles.Name = "toolStripMenuItemAssStyles"; this.toolStripMenuItemAssStyles.Name = "toolStripMenuItemAssStyles";
@ -5987,5 +6013,8 @@ namespace Nikse.SubtitleEdit.Forms
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInsertAfter; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInsertAfter;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInsertBefore; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInsertBefore;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInsertSubtitle; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInsertSubtitle;
private System.Windows.Forms.ToolStripMenuItem applyCustomStylesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem fadeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem setPositionToolStripMenuItem;
} }
} }

View File

@ -13,6 +13,7 @@ using Nikse.SubtitleEdit.Core.NetflixQualityCheck;
using Nikse.SubtitleEdit.Core.SpellCheck; using Nikse.SubtitleEdit.Core.SpellCheck;
using Nikse.SubtitleEdit.Core.SubtitleFormats; using Nikse.SubtitleEdit.Core.SubtitleFormats;
using Nikse.SubtitleEdit.Core.VobSub; using Nikse.SubtitleEdit.Core.VobSub;
using Nikse.SubtitleEdit.Forms.Assa;
using Nikse.SubtitleEdit.Forms.Networking; using Nikse.SubtitleEdit.Forms.Networking;
using Nikse.SubtitleEdit.Forms.Ocr; using Nikse.SubtitleEdit.Forms.Ocr;
using Nikse.SubtitleEdit.Forms.Styles; using Nikse.SubtitleEdit.Forms.Styles;
@ -22580,7 +22581,6 @@ namespace Nikse.SubtitleEdit.Forms
findDoubleWordsToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSpellCheckFindDoubleWords); findDoubleWordsToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSpellCheckFindDoubleWords);
addWordToNameListToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSpellCheckAddWordToNames); addWordToNameListToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSpellCheckAddWordToNames);
toolStripMenuItemAdjustAllTimes.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationAdjustTimes); toolStripMenuItemAdjustAllTimes.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationAdjustTimes);
visualSyncToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationVisualSync); visualSyncToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationVisualSync);
toolStripMenuItemPointSync.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationPointSync); toolStripMenuItemPointSync.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainSynchronizationPointSync);
@ -22609,6 +22609,7 @@ namespace Nikse.SubtitleEdit.Forms
moveTextDownToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainListViewColumnTextDown); moveTextDownToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainListViewColumnTextDown);
toolStripMenuItemReverseRightToLeftStartEnd.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainEditReverseStartAndEndingForRTL); toolStripMenuItemReverseRightToLeftStartEnd.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainEditReverseStartAndEndingForRTL);
translateToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAutoTranslate); translateToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAutoTranslate);
applyCustomStylesToolStripMenuItem.ShortcutKeys = UiUtil.GetKeys(Configuration.Settings.Shortcuts.ApplyAssaOverrideTags);
audioVisualizer.InsertAtVideoPositionShortcut = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainWaveformInsertAtCurrentPosition); audioVisualizer.InsertAtVideoPositionShortcut = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainWaveformInsertAtCurrentPosition);
audioVisualizer.Move100MsLeft = UiUtil.GetKeys(Configuration.Settings.Shortcuts.Waveform100MsLeft); audioVisualizer.Move100MsLeft = UiUtil.GetKeys(Configuration.Settings.Shortcuts.Waveform100MsLeft);
@ -31080,5 +31081,23 @@ namespace Nikse.SubtitleEdit.Forms
{ {
_textHeightResizeIgnoreUpdate = DateTime.UtcNow.Ticks; _textHeightResizeIgnoreUpdate = DateTime.UtcNow.Ticks;
} }
private void applyCustomStylesToolStripMenuItem_Click(object sender, EventArgs e)
{
using (var form = new ApplyCustomStyles(_subtitle, SubtitleListview1.GetSelectedIndices()))
{
if (form.ShowDialog(this) != DialogResult.OK)
{
return;
}
MakeHistoryForUndo(string.Format(_language.BeforeX, "Apply custom override tag")); //TODO: fix
SaveSubtitleListviewIndices();
_subtitle.Paragraphs.Clear();
_subtitle.Paragraphs.AddRange(form.UpdatedSubtitle.Paragraphs);
SubtitleListview1.Fill(_subtitle, _subtitleOriginal);
RestoreSubtitleListviewIndices();
}
}
} }
} }

View File

@ -464,75 +464,75 @@
<data name="toolStripButtonAssStyleManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButtonAssStyleManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
Ll65AAAAAElFTkSuQmCC b8E9jQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="toolStripButtonAssProperties.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButtonAssProperties.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQaSURBVFhH1VdbaBNZGI5avKwIouAFq5kkQtFFEHHF7q60 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQZSURBVFhH1VdbaBNZGI5uUddlQRRWZauZJEJREURUrBda
KgouLPrkgwi1oKwIcaYRtw/VBheW7YMXRK1Uq1V3rbWJbbFVS20rra1V7EVjrG2apE0mk7TNgz4s+KD2 lV1QEH3yQYRaUBQhzjSifag2rCD2wV1Z1q1U69ZrrU1si61aaltpt7WKvWiMtU2TtMlkkrZ50AfBB7XH
+H+TaSlxcmPy4gcfZ/7/nPP/37knuu8SjLEZUihU+Lyv3/3i9ZthSQqdIt8spVobQqEQ5/X5q98Oep7E /5tMS4mTG5MXP/g48//nnP//zj3RfZdgjM2QQqHCZ3397uevXg9LUugP8v2gVGtDKBTivD5/9ZtBz5OY
pMv7sqK+jV2+18yu1LWystoW1j/k7lNtq9AzItaEw+EsJU1siJJ03VpexwpLbXF57k4jI7HniH+V2ptV dHlfVNS3sUv3mtnlulZWVtvC+ofcfaptFXpGxJpwOJylpIkNUZL+s5bXscJSW1xeuNPISOwF4plSe7Nq
20znySs1DCKUNLFBjWrVAkSz5N8GJopinRgMVp4lMWptoomZUNLERrICwL9v1LN/bjWo1qkxJQG2x13s m+k8fbmGQYSSJjaoUa1agGiW3GxgoijWicFg5V8kRq1NNDETSprYSFYAePZaPTt3o0G1To0pCbA97mKP
UUdPWohYKQsooZGdvv0wLUSslAVgl1c1PUsLEStlAT1O18DY2Nj6dBCxUhbQ/dbVp7g0A7G+XwF01jNH OnrSQsRKWUAJjez87YdpIWKlLAC7vKrpaVqIWCkL6HG6BsbGxlang4iVsoDuN64+xaUZiPX9CqCznjk6
R0fLiRVgMBg8OfmdiNT2N8TQJIAC7cF1C1/x1VpGtlzCTkSIQAxNAmgUP/U6XOH2Luf7DiIF7UYJOxGp OlpOrACDweDpye9EpLY7EUOTAAq0B9ctfMVXahnZcgk7ESECMTQJoFGs63W4wu1dzncdRArajRJ2IlLf
7wnE0CQgHdAkAM8sHaVf6dHJVchN+86lup+tVutMuXMMaBKAjfSos5fdfNDOKhs7mNPp/IwSNtj8/BWD U4ihSUA6oEkAnlk6Spvp0clVyE37zqW6jVardabcOQY0CcBGetTZy64/aGeVjR3M6XR+RgkbbH72kkEE
CLTt2LH1sWQR2G2LMOEvKFgHH6BJAI3y95rWF+yCrYmV1bTImxAlbLC+/SUbHx/fUmswrLOuNkx4/jjE 2nb8tvWxZBHYDYsw4S8oWAUfoEkAjXJXTetz9o+tiZXVtMibECVssL79BRsfH99SazCssi4zTHgOH2IQ
IEK0COVyQIImAZIk/UBJ95OQAzTSPLK3oIQNUt0+WqbZdhN3jcg61679DAESz38MHTu2BDE0CUgGlQbD IVqEcjkgQZMASZLmUtL9JOQAjTSP7C0oYYNUt4+WaZbdxF0lss4VKz5DgMTzH0PHj/+CGJoEJINKg2Eh
Ukr+EQLu/7imiAS8h4hAAV+MeueA51lR2T3m8vgeyh3iIVoAjXb9oMfbAvUg7YlrKAfcI61U9wva2I1c Jf8IAfdXLi8iAe8gIlDAF6PeOeB5WlR2j7k8vodyh3iIFkCjXT3o8bZAPUh74irKAfdIK9VtQhu7kStG
MZLbTcs/1GVlLZAE4YwsgOdDLrN5DvXJEQOB/2jGNqF9XKjsgQNYa/imX0R4ZulbqNDr59pMK0YhwGbk crtp8fu6rKyfJUH4UxbA8yGX2Tyb+uSIgcAtmrH1aB8XKnvgANYavukXEZ5Z+hYq9Po5NtOvoxBgM3Ln
Tst9eJ4bzsv7FJmFo/nwJQ0VAZveDHh6YHf3D/WRbUfpeOfupe9t1UZ9PpKTkE92jtPLQQiUvFoWYOFf 5T48zw3n5X2KzMKxfPiShoqA9a8HPD2wu/uH+si2o3S8dffS97Zqoz4fyUnIJzvH6eUgBEpeLQuw8C+Z
MZ1uhuJOjFT2AALbTateQ0CVKXOMluLiJFuyNzdBQESEZbvSJTFSEWAzrtoeWXt1DubnyQL8Al+vdEmM TjdDcSdGKnsAge2mpa8goMqUOUZLcXGSLdkbmiAgIsKyXemSGKkIsBmXbo+svToH8/NkAX6Br1e6JEZK
lASYuAYkonKYeCeaXbt2NkLAk5ycL4HjfOL/BMCUAOeQlzbZnijupnXn0O4ux2VZTdyEImCv3DkKzGrN AkxcAxJROUy8E82uHb83QsCTnJwvgRN84v8EwJQA55CXNtmeKO6mdefQ7i7HZVlN3IQiYK/cOQrMas3w
8FkEX2Qp+EuKOz4mBVyknY9nOJpPHc4PJGI+JS2NTPVKH40wQ+n+DSj5nxDgPnz4f7qeFynu2PAHAucr WQRfZCn4fxV3fEwKuEg7H89wNP93ON+TiJ8oaWlkqpf4aIQZSvdvQMlPQoD7yJEPdD3PV9yx4Q8E/q5s
Gzun7vpodjoc4eojR5ZVGbl3VXq9WM6tLKRui4m49ZYRlysl7MVFW7P1XuGoe8Rs9o8I5oPki38i6FrN 7Jy666PZ6XCEq48eXVRl5N5W6fViObekkLotIOLWW0RcrJSwFxRtzdZ7hWPuEbPZPyKYD5Iv/omgazWD
oKnOplFOvXiTpF9HuW1tbUgwj7iQiEQ4elhfPD4biBuVEjb8qF9KRHv0w2wlfyyTBALGYhzodF8BSdL4 pjqbRjn14k2Sfh3ltrW1IcGPxHlEJMLRw/ri8VlDXKuUsOFH/UIi2qMfZiv5Y5kkEDAW40Cn+wo0JPih
pNur15QAAAAASUVORK5CYII= EXaSWgAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="toolStripButtonAssAttachments.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButtonAssAttachments.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
</value> </value>
</data> </data>
<data name="toolStripButtonNetflixQualityCheck.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButtonNetflixQualityCheck.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -775,7 +775,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
CAAAAk1TRnQBSQFMAgEBAgEAASQBKgEkASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAATwBKgE8ASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -823,6 +823,6 @@
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value> <value>97</value>
</metadata> </metadata>
</root> </root>

View File

@ -37,10 +37,7 @@
this.groupBoxRule = new System.Windows.Forms.GroupBox(); this.groupBoxRule = new System.Windows.Forms.GroupBox();
this.numericUpDownDuration = new System.Windows.Forms.NumericUpDown(); this.numericUpDownDuration = new System.Windows.Forms.NumericUpDown();
this.checkBoxCaseSensitive = new System.Windows.Forms.CheckBox(); this.checkBoxCaseSensitive = new System.Windows.Forms.CheckBox();
this.comboBoxRule = new System.Windows.Forms.ComboBox();
this.textBoxText = new System.Windows.Forms.TextBox(); this.textBoxText = new System.Windows.Forms.TextBox();
this.listViewStyles = new System.Windows.Forms.ListView();
this.columnHeaderStyleName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.buttonCancel = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button();
this.buttonOK = new System.Windows.Forms.Button(); this.buttonOK = new System.Windows.Forms.Button();
this.buttonApply = new System.Windows.Forms.Button(); this.buttonApply = new System.Windows.Forms.Button();
@ -54,6 +51,9 @@
this.toolStripMenuItemSelectAll = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemSelectAll = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemInverseSelection = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemInverseSelection = new System.Windows.Forms.ToolStripMenuItem();
this.labelInfo = new System.Windows.Forms.Label(); this.labelInfo = new System.Windows.Forms.Label();
this.columnHeaderStyleName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.listViewStyles = new System.Windows.Forms.ListView();
this.comboBoxRule = new System.Windows.Forms.ComboBox();
this.groupBoxWhatToDo.SuspendLayout(); this.groupBoxWhatToDo.SuspendLayout();
this.groupBoxRule.SuspendLayout(); this.groupBoxRule.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDuration)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownDuration)).BeginInit();
@ -161,22 +161,6 @@
this.checkBoxCaseSensitive.UseVisualStyleBackColor = true; this.checkBoxCaseSensitive.UseVisualStyleBackColor = true;
this.checkBoxCaseSensitive.CheckedChanged += new System.EventHandler(this.checkBoxCaseSensitive_CheckedChanged); this.checkBoxCaseSensitive.CheckedChanged += new System.EventHandler(this.checkBoxCaseSensitive_CheckedChanged);
// //
// comboBoxRule
//
this.comboBoxRule.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxRule.FormattingEnabled = true;
this.comboBoxRule.Items.AddRange(new object[] {
"Contains",
"Starts with",
"Ends with",
"Not contains",
"RegEx"});
this.comboBoxRule.Location = new System.Drawing.Point(6, 20);
this.comboBoxRule.Name = "comboBoxRule";
this.comboBoxRule.Size = new System.Drawing.Size(185, 21);
this.comboBoxRule.TabIndex = 0;
this.comboBoxRule.SelectedIndexChanged += new System.EventHandler(this.comboBoxRule_SelectedIndexChanged);
//
// textBoxText // textBoxText
// //
this.textBoxText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.textBoxText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
@ -187,24 +171,6 @@
this.textBoxText.TabIndex = 1; this.textBoxText.TabIndex = 1;
this.textBoxText.TextChanged += new System.EventHandler(this.textBox1_TextChanged); this.textBoxText.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
// //
// listViewStyles
//
this.listViewStyles.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listViewStyles.CheckBoxes = true;
this.listViewStyles.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeaderStyleName});
this.listViewStyles.FullRowSelect = true;
this.listViewStyles.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listViewStyles.HideSelection = false;
this.listViewStyles.Location = new System.Drawing.Point(198, 21);
this.listViewStyles.Name = "listViewStyles";
this.listViewStyles.Size = new System.Drawing.Size(199, 108);
this.listViewStyles.TabIndex = 3;
this.listViewStyles.UseCompatibleStateImageBehavior = false;
this.listViewStyles.View = System.Windows.Forms.View.Details;
this.listViewStyles.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewStyles_ItemChecked);
//
// buttonCancel // buttonCancel
// //
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
@ -324,6 +290,40 @@
this.labelInfo.TabIndex = 3; this.labelInfo.TabIndex = 3;
this.labelInfo.Text = "labelInfo"; this.labelInfo.Text = "labelInfo";
// //
// listViewStyles
//
this.listViewStyles.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listViewStyles.CheckBoxes = true;
this.listViewStyles.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeaderStyleName});
this.listViewStyles.FullRowSelect = true;
this.listViewStyles.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listViewStyles.HideSelection = false;
this.listViewStyles.Location = new System.Drawing.Point(198, 21);
this.listViewStyles.Name = "listViewStyles";
this.listViewStyles.Size = new System.Drawing.Size(199, 108);
this.listViewStyles.TabIndex = 3;
this.listViewStyles.UseCompatibleStateImageBehavior = false;
this.listViewStyles.View = System.Windows.Forms.View.Details;
this.listViewStyles.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewStyles_ItemChecked);
//
// comboBoxRule
//
this.comboBoxRule.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxRule.FormattingEnabled = true;
this.comboBoxRule.Items.AddRange(new object[] {
"Contains",
"Starts with",
"Ends with",
"Not contains",
"RegEx"});
this.comboBoxRule.Location = new System.Drawing.Point(6, 20);
this.comboBoxRule.Name = "comboBoxRule";
this.comboBoxRule.Size = new System.Drawing.Size(185, 21);
this.comboBoxRule.TabIndex = 0;
this.comboBoxRule.SelectedIndexChanged += new System.EventHandler(this.comboBoxRule_SelectedIndexChanged);
//
// ModifySelection // ModifySelection
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -369,7 +369,6 @@
private System.Windows.Forms.RadioButton radioButtonNewSelection; private System.Windows.Forms.RadioButton radioButtonNewSelection;
private System.Windows.Forms.GroupBox groupBoxRule; private System.Windows.Forms.GroupBox groupBoxRule;
private System.Windows.Forms.TextBox textBoxText; private System.Windows.Forms.TextBox textBoxText;
private System.Windows.Forms.ComboBox comboBoxRule;
private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.Button buttonApply; private System.Windows.Forms.Button buttonApply;
@ -382,11 +381,12 @@
private System.Windows.Forms.CheckBox checkBoxCaseSensitive; private System.Windows.Forms.CheckBox checkBoxCaseSensitive;
private System.Windows.Forms.RadioButton radioButtonIntersect; private System.Windows.Forms.RadioButton radioButtonIntersect;
private System.Windows.Forms.ColumnHeader columnHeaderStyle; private System.Windows.Forms.ColumnHeader columnHeaderStyle;
private System.Windows.Forms.ListView listViewStyles;
private System.Windows.Forms.ColumnHeader columnHeaderStyleName;
private System.Windows.Forms.NumericUpDown numericUpDownDuration; private System.Windows.Forms.NumericUpDown numericUpDownDuration;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemSelectAll; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemSelectAll;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInverseSelection; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemInverseSelection;
private System.Windows.Forms.ComboBox comboBoxRule;
private System.Windows.Forms.ListView listViewStyles;
private System.Windows.Forms.ColumnHeader columnHeaderStyleName;
} }
} }

View File

@ -1,5 +1,4 @@
using Nikse.SubtitleEdit.Controls; using Nikse.SubtitleEdit.Controls;
using Nikse.SubtitleEdit.Core;
using Nikse.SubtitleEdit.Core.Common; using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.SubtitleFormats; using Nikse.SubtitleEdit.Core.SubtitleFormats;
using Nikse.SubtitleEdit.Logic; using Nikse.SubtitleEdit.Logic;

View File

@ -1260,6 +1260,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
AddNode(generalNode, language.ToggleMode, nameof(Configuration.Settings.Shortcuts.GeneralToggleMode)); AddNode(generalNode, language.ToggleMode, nameof(Configuration.Settings.Shortcuts.GeneralToggleMode));
AddNode(generalNode, language.TogglePreviewOnVideo, nameof(Configuration.Settings.Shortcuts.GeneralTogglePreviewOnVideo)); AddNode(generalNode, language.TogglePreviewOnVideo, nameof(Configuration.Settings.Shortcuts.GeneralTogglePreviewOnVideo));
AddNode(generalNode, language.RemoveBlankLines, nameof(Configuration.Settings.Shortcuts.MainListViewRemoveBlankLines)); AddNode(generalNode, language.RemoveBlankLines, nameof(Configuration.Settings.Shortcuts.MainListViewRemoveBlankLines));
AddNode(generalNode, language.ApplyAssaOverrideTags, nameof(Configuration.Settings.Shortcuts.ApplyAssaOverrideTags));
AddNode(generalNode, language.Help, nameof(Configuration.Settings.Shortcuts.GeneralHelp), true); AddNode(generalNode, language.Help, nameof(Configuration.Settings.Shortcuts.GeneralHelp), true);
_shortcuts.Nodes.Add(generalNode); _shortcuts.Nodes.Add(generalNode);

View File

@ -1803,6 +1803,7 @@ namespace Nikse.SubtitleEdit.Logic
TranslateSelectedLines = "Translate selected lines...", TranslateSelectedLines = "Translate selected lines...",
AdjustDisplayDurationForSelectedLines = "Adjust durations for selected lines...", AdjustDisplayDurationForSelectedLines = "Adjust durations for selected lines...",
ApplyDurationLimitsForSelectedLines = "Apply duration limits for selected lines...", ApplyDurationLimitsForSelectedLines = "Apply duration limits for selected lines...",
ApplyCustomOverrideTag = "Apply custom override tag...",
FixCommonErrorsInSelectedLines = "Fix common errors in selected lines...", FixCommonErrorsInSelectedLines = "Fix common errors in selected lines...",
ChangeCasingForSelectedLines = "Change casing for selected lines...", ChangeCasingForSelectedLines = "Change casing for selected lines...",
SaveSelectedLines = "Save selected lines as...", SaveSelectedLines = "Save selected lines as...",
@ -2327,6 +2328,7 @@ can edit in same subtitle file (collaboration)",
StartInSourceView = "Start in source view", StartInSourceView = "Start in source view",
RemoveBlankLinesWhenOpening = "Remove blank lines when opening a subtitle", RemoveBlankLinesWhenOpening = "Remove blank lines when opening a subtitle",
RemoveBlankLines = "Remove blank lines", RemoveBlankLines = "Remove blank lines",
ApplyAssaOverrideTags = "Apply ASSA override tags to selection",
ShowLineBreaksAs = "Show line breaks in list view as", ShowLineBreaksAs = "Show line breaks in list view as",
SaveAsFileNameFrom = "\"Save as...\" uses file name from", SaveAsFileNameFrom = "\"Save as...\" uses file name from",
MainListViewDoubleClickAction = "Double-clicking line in main window list view will", MainListViewDoubleClickAction = "Double-clicking line in main window list view will",

View File

@ -1656,6 +1656,7 @@
public string TranslateSelectedLines { get; set; } public string TranslateSelectedLines { get; set; }
public string AdjustDisplayDurationForSelectedLines { get; set; } public string AdjustDisplayDurationForSelectedLines { get; set; }
public string ApplyDurationLimitsForSelectedLines { get; set; } public string ApplyDurationLimitsForSelectedLines { get; set; }
public string ApplyCustomOverrideTag { get; set; }
public string FixCommonErrorsInSelectedLines { get; set; } public string FixCommonErrorsInSelectedLines { get; set; }
public string ChangeCasingForSelectedLines { get; set; } public string ChangeCasingForSelectedLines { get; set; }
public string SaveSelectedLines { get; set; } public string SaveSelectedLines { get; set; }
@ -2183,6 +2184,7 @@
public string StartInSourceView { get; set; } public string StartInSourceView { get; set; }
public string RemoveBlankLinesWhenOpening { get; set; } public string RemoveBlankLinesWhenOpening { get; set; }
public string RemoveBlankLines { get; set; } public string RemoveBlankLines { get; set; }
public string ApplyAssaOverrideTags { get; set; }
public string ShowLineBreaksAs { get; set; } public string ShowLineBreaksAs { get; set; }
public string SaveAsFileNameFrom { get; set; } public string SaveAsFileNameFrom { get; set; }
public string MainListViewDoubleClickAction { get; set; } public string MainListViewDoubleClickAction { get; set; }

View File

@ -115,12 +115,30 @@
<Compile Include="Forms\AlignmentPickerJapanese.Designer.cs"> <Compile Include="Forms\AlignmentPickerJapanese.Designer.cs">
<DependentUpon>AlignmentPickerJapanese.cs</DependentUpon> <DependentUpon>AlignmentPickerJapanese.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Forms\Assa\AdvancedSelectionHelper.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Assa\AdvancedSelectionHelper.Designer.cs">
<DependentUpon>AdvancedSelectionHelper.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Assa\ApplyCustomStyles.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Assa\ApplyCustomStyles.Designer.cs">
<DependentUpon>ApplyCustomStyles.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Assa\AssaTagTemplate.cs"> <Compile Include="Forms\Assa\AssaTagTemplate.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="Forms\Assa\AssaTagTemplate.Designer.cs"> <Compile Include="Forms\Assa\AssaTagTemplate.Designer.cs">
<DependentUpon>AssaTagTemplate.cs</DependentUpon> <DependentUpon>AssaTagTemplate.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Forms\Assa\TagHistory.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Assa\TagHistory.Designer.cs">
<DependentUpon>TagHistory.cs</DependentUpon>
</Compile>
<Compile Include="Forms\BatchConvertMkvEnding.cs"> <Compile Include="Forms\BatchConvertMkvEnding.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -1240,9 +1258,18 @@
<EmbeddedResource Include="Forms\AlignmentPickerJapanese.resx"> <EmbeddedResource Include="Forms\AlignmentPickerJapanese.resx">
<DependentUpon>AlignmentPickerJapanese.cs</DependentUpon> <DependentUpon>AlignmentPickerJapanese.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\Assa\AdvancedSelectionHelper.resx">
<DependentUpon>AdvancedSelectionHelper.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Assa\ApplyCustomStyles.resx">
<DependentUpon>ApplyCustomStyles.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Assa\AssaTagTemplate.resx"> <EmbeddedResource Include="Forms\Assa\AssaTagTemplate.resx">
<DependentUpon>AssaTagTemplate.cs</DependentUpon> <DependentUpon>AssaTagTemplate.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\Assa\TagHistory.resx">
<DependentUpon>TagHistory.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\BatchConvertMkvEnding.resx"> <EmbeddedResource Include="Forms\BatchConvertMkvEnding.resx">
<DependentUpon>BatchConvertMkvEnding.cs</DependentUpon> <DependentUpon>BatchConvertMkvEnding.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>