mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-22 03:02:35 +01:00
Improve UI, implement i18n, add simple mode, group files
This commit is contained in:
parent
1b5d2499a1
commit
f9f650d9fb
@ -1,5 +1,5 @@
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
partial class BeautifyTimeCodes
|
||||
{
|
||||
@ -61,7 +61,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.buttonOK.Location = new System.Drawing.Point(415, 350);
|
||||
this.buttonOK.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonOK.TabIndex = 3;
|
||||
this.buttonOK.TabIndex = 21;
|
||||
this.buttonOK.Text = "OK";
|
||||
this.buttonOK.UseVisualStyleBackColor = true;
|
||||
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
|
||||
@ -73,7 +73,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.buttonCancel.Location = new System.Drawing.Point(496, 350);
|
||||
this.buttonCancel.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonCancel.TabIndex = 4;
|
||||
this.buttonCancel.TabIndex = 22;
|
||||
this.buttonCancel.Text = "Cancel";
|
||||
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@ -99,7 +99,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.checkBoxAlignTimeCodes.Location = new System.Drawing.Point(10, 22);
|
||||
this.checkBoxAlignTimeCodes.Name = "checkBoxAlignTimeCodes";
|
||||
this.checkBoxAlignTimeCodes.Size = new System.Drawing.Size(224, 19);
|
||||
this.checkBoxAlignTimeCodes.TabIndex = 1;
|
||||
this.checkBoxAlignTimeCodes.TabIndex = 2;
|
||||
this.checkBoxAlignTimeCodes.Text = "Align time codes to frame time codes";
|
||||
this.checkBoxAlignTimeCodes.UseVisualStyleBackColor = true;
|
||||
this.checkBoxAlignTimeCodes.CheckedChanged += new System.EventHandler(this.checkBoxAlignTimeCodes_CheckedChanged);
|
||||
@ -121,7 +121,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.checkBoxExtractExactTimeCodes.Location = new System.Drawing.Point(4, 2);
|
||||
this.checkBoxExtractExactTimeCodes.Name = "checkBoxExtractExactTimeCodes";
|
||||
this.checkBoxExtractExactTimeCodes.Size = new System.Drawing.Size(266, 19);
|
||||
this.checkBoxExtractExactTimeCodes.TabIndex = 1;
|
||||
this.checkBoxExtractExactTimeCodes.TabIndex = 3;
|
||||
this.checkBoxExtractExactTimeCodes.Text = "Use ffprobe to extract exact frame time codes";
|
||||
this.checkBoxExtractExactTimeCodes.UseVisualStyleBackColor = true;
|
||||
this.checkBoxExtractExactTimeCodes.CheckedChanged += new System.EventHandler(this.checkBoxExtractExactTimeCodes_CheckedChanged);
|
||||
@ -171,7 +171,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.buttonExtractTimeCodes.Location = new System.Drawing.Point(23, 18);
|
||||
this.buttonExtractTimeCodes.Name = "buttonExtractTimeCodes";
|
||||
this.buttonExtractTimeCodes.Size = new System.Drawing.Size(149, 23);
|
||||
this.buttonExtractTimeCodes.TabIndex = 2;
|
||||
this.buttonExtractTimeCodes.TabIndex = 4;
|
||||
this.buttonExtractTimeCodes.Text = "Extract time codes";
|
||||
this.buttonExtractTimeCodes.UseVisualStyleBackColor = true;
|
||||
this.buttonExtractTimeCodes.Click += new System.EventHandler(this.buttonExtractTimeCodes_Click);
|
||||
@ -195,7 +195,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.groupBoxShotChanges.Location = new System.Drawing.Point(12, 170);
|
||||
this.groupBoxShotChanges.Name = "groupBoxShotChanges";
|
||||
this.groupBoxShotChanges.Size = new System.Drawing.Size(558, 101);
|
||||
this.groupBoxShotChanges.TabIndex = 2;
|
||||
this.groupBoxShotChanges.TabIndex = 10;
|
||||
this.groupBoxShotChanges.TabStop = false;
|
||||
this.groupBoxShotChanges.Text = "Shot changes";
|
||||
//
|
||||
@ -207,7 +207,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.checkBoxSnapToShotChanges.Location = new System.Drawing.Point(10, 22);
|
||||
this.checkBoxSnapToShotChanges.Name = "checkBoxSnapToShotChanges";
|
||||
this.checkBoxSnapToShotChanges.Size = new System.Drawing.Size(166, 19);
|
||||
this.checkBoxSnapToShotChanges.TabIndex = 1;
|
||||
this.checkBoxSnapToShotChanges.TabIndex = 11;
|
||||
this.checkBoxSnapToShotChanges.Text = "Snap cues to shot changes";
|
||||
this.checkBoxSnapToShotChanges.UseVisualStyleBackColor = true;
|
||||
this.checkBoxSnapToShotChanges.CheckedChanged += new System.EventHandler(this.checkBoxSnapToShotChanges_CheckedChanged);
|
||||
@ -229,7 +229,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.buttonImportShotChanges.Location = new System.Drawing.Point(23, 18);
|
||||
this.buttonImportShotChanges.Name = "buttonImportShotChanges";
|
||||
this.buttonImportShotChanges.Size = new System.Drawing.Size(221, 23);
|
||||
this.buttonImportShotChanges.TabIndex = 2;
|
||||
this.buttonImportShotChanges.TabIndex = 12;
|
||||
this.buttonImportShotChanges.Text = "Generate / import shot changes...";
|
||||
this.buttonImportShotChanges.UseVisualStyleBackColor = true;
|
||||
this.buttonImportShotChanges.Click += new System.EventHandler(this.buttonImportShotChanges_Click);
|
||||
@ -249,7 +249,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
this.buttonEditProfile.Location = new System.Drawing.Point(11, 279);
|
||||
this.buttonEditProfile.Name = "buttonEditProfile";
|
||||
this.buttonEditProfile.Size = new System.Drawing.Size(178, 28);
|
||||
this.buttonEditProfile.TabIndex = 3;
|
||||
this.buttonEditProfile.TabIndex = 20;
|
||||
this.buttonEditProfile.Text = "Edit profile...";
|
||||
this.buttonEditProfile.UseVisualStyleBackColor = true;
|
||||
this.buttonEditProfile.Click += new System.EventHandler(this.buttonEditProfile_Click);
|
@ -1,20 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Nikse.SubtitleEdit.Core;
|
||||
using Nikse.SubtitleEdit.Core.Common;
|
||||
using Nikse.SubtitleEdit.Core.Forms;
|
||||
using Nikse.SubtitleEdit.Forms.ShotChanges;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
public partial class BeautifyTimeCodes : Form
|
||||
{
|
File diff suppressed because it is too large
Load Diff
@ -1,25 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Nikse.SubtitleEdit.Core.Common;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
public partial class BeautifyTimeCodesProfile : Form
|
||||
{
|
||||
private readonly double _frameRate;
|
||||
|
||||
public BeautifyTimeCodesProfile(double frameRate)
|
||||
{
|
||||
_frameRate = frameRate;
|
||||
|
||||
UiUtil.PreInitialize(this);
|
||||
InitializeComponent();
|
||||
UiUtil.FixFonts(this);
|
||||
|
||||
|
||||
if (frameRate > 0)
|
||||
{
|
||||
cuesPreviewViewInCues.FrameRate = (float)frameRate;
|
||||
@ -30,16 +27,78 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
cuesPreviewViewChainingInCueOnShot.FrameRate = (float)frameRate;
|
||||
cuesPreviewViewChainingOutCueOnShot.FrameRate = (float)frameRate;
|
||||
}
|
||||
|
||||
|
||||
var language = LanguageSettings.Current.BeautifyTimeCodesProfile;
|
||||
Text = language.Title;
|
||||
// TODO i18n
|
||||
buttonCreateSimple.Text = language.CreateSimple;
|
||||
toolStripMenuItemLoadPreset.Text = language.LoadPreset;
|
||||
groupBoxGeneral.Text = language.General;
|
||||
labelGap.Text = language.Gap;
|
||||
labelGapSuffix.Text = language.GapSuffix;
|
||||
groupBoxInCues.Text = language.InCues;
|
||||
labelInCuesGap.Text = language.Gap;
|
||||
labelInCuesZones.Text = language.Zones;
|
||||
groupBoxOutCues.Text = language.OutCues;
|
||||
labelOutCuesGap.Text = language.Gap;
|
||||
labelOutCuesZones.Text = language.Zones;
|
||||
groupBoxConnectedSubtitles.Text = language.ConnectedSubtitles;
|
||||
tabPageConnectedSubtitlesInCueClosest.Text = language.InCueClosest;
|
||||
labelConnectedSubtitlesInCueClosestGaps.Text = language.Gap;
|
||||
tabPageConnectedSubtitlesOutCueClosest.Text = language.OutCueClosest;
|
||||
labelConnectedSubtitlesOutCueClosestGaps.Text = language.Gap;
|
||||
labelConnectedSubtitlesZones.Text = language.Zones;
|
||||
labelConnectedSubtitlesTreatConnected.Text = language.TreadAsConnected;
|
||||
labelConnectedSubtitlesTreatConnectedSuffix.Text = language.Milliseconds;
|
||||
groupBoxChaining.Text = language.Chaining;
|
||||
tabPageChainingGeneral.Text = language.General;
|
||||
radioButtonChainingGeneralMaxGap.Text = language.MaxGap;
|
||||
labelChainingGeneralMaxGapSuffix.Text = language.Milliseconds;
|
||||
radioButtonChainingGeneralZones.Text = language.Zones;
|
||||
labelChainingGeneralShotChangeBehavior.Text = language.ShotChangeBehavior;
|
||||
comboBoxChainingGeneralShotChangeBehavior.Items.Clear();
|
||||
comboBoxChainingGeneralShotChangeBehavior.Items.Add(language.DontChain);
|
||||
comboBoxChainingGeneralShotChangeBehavior.Items.Add(language.ExtendCrossingShotChange);
|
||||
comboBoxChainingGeneralShotChangeBehavior.Items.Add(language.ExtendUntilShotChange);
|
||||
radioButtonChainingInCueOnShotMaxGap.Text = language.MaxGap;
|
||||
labelChainingInCueOnShotMaxGapSuffix.Text = language.Milliseconds;
|
||||
radioButtonChainingInCueOnShotZones.Text = language.Zones;
|
||||
radioButtonChainingOutCueOnShotMaxGap.Text = language.MaxGap;
|
||||
labelChainingOutCueOnShotMaxGapSuffix.Text = language.Milliseconds;
|
||||
radioButtonChainingOutCueOnShotZones.Text = language.Zones;
|
||||
|
||||
LoadSettings();
|
||||
cuesPreviewViewInCues.PreviewText = language.SubtitlePreviewText;
|
||||
cuesPreviewViewOutCues.PreviewText = language.SubtitlePreviewText;
|
||||
cuesPreviewViewConnectedSubtitlesInCueClosest.PreviewText = language.SubtitlePreviewText;
|
||||
cuesPreviewViewConnectedSubtitlesOutCueClosest.PreviewText = language.SubtitlePreviewText;
|
||||
cuesPreviewViewChainingGeneral.PreviewText = language.SubtitlePreviewText;
|
||||
cuesPreviewViewChainingInCueOnShot.PreviewText = language.SubtitlePreviewText;
|
||||
cuesPreviewViewChainingOutCueOnShot.PreviewText = language.SubtitlePreviewText;
|
||||
|
||||
numericUpDownGap.Left = labelGap.Left + labelGap.Width + 12;
|
||||
labelGapSuffix.Left = numericUpDownGap.Left + numericUpDownGap.Width + 6;
|
||||
|
||||
numericUpDownConnectedSubtitlesTreatConnected.Left = Math.Max(labelConnectedSubtitlesTreatConnected.Left + labelConnectedSubtitlesTreatConnected.Width + 6, numericUpDownConnectedSubtitlesTreatConnected.Left);
|
||||
labelConnectedSubtitlesTreatConnectedSuffix.Left = numericUpDownConnectedSubtitlesTreatConnected.Left + numericUpDownConnectedSubtitlesTreatConnected.Width + 6;
|
||||
|
||||
var comboBoxRight = comboBoxChainingGeneralShotChangeBehavior.Right;
|
||||
comboBoxChainingGeneralShotChangeBehavior.Left = Math.Max(labelChainingGeneralShotChangeBehavior.Left + labelChainingGeneralShotChangeBehavior.Width + 6, comboBoxChainingGeneralShotChangeBehavior.Left);
|
||||
comboBoxChainingGeneralShotChangeBehavior.Width = comboBoxRight - comboBoxChainingGeneralShotChangeBehavior.Left;
|
||||
|
||||
foreach (BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset preset in Enum.GetValues(typeof(BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset)))
|
||||
{
|
||||
var toolStripMenuItem = new ToolStripMenuItem(UiUtil.GetBeautifyTimeCodesProfilePresetName(preset));
|
||||
toolStripMenuItem.Click += (sender, args) =>
|
||||
{
|
||||
ResetSettings(preset);
|
||||
};
|
||||
toolStripMenuItemLoadPreset.DropDownItems.Add(toolStripMenuItem);
|
||||
}
|
||||
|
||||
buttonOK.Text = LanguageSettings.Current.General.Ok;
|
||||
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
|
||||
UiUtil.FixLargeFonts(this, buttonOK);
|
||||
|
||||
LoadSettings();
|
||||
}
|
||||
|
||||
private void LoadSettings()
|
||||
@ -204,24 +263,9 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
private void toolStripMenuItemLoadDefault_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResetSettings(BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset.Default);
|
||||
}
|
||||
|
||||
private void toolStripMenuItemLoadNetflix_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResetSettings(BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset.Netflix);
|
||||
}
|
||||
|
||||
private void toolStripMenuItemLoadSDI_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResetSettings(BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset.SDI);
|
||||
}
|
||||
|
||||
private void ResetSettings(BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset preset)
|
||||
{
|
||||
if (MessageBox.Show(this, "This will reset your current profile and replace all values with those of the selected preset. This cannot be undone.\n\nDo you want to continue?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
||||
if (MessageBox.Show(this, LanguageSettings.Current.BeautifyTimeCodesProfile.ResetWarning, LanguageSettings.Current.General.Warning, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
||||
{
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile = new BeautifyTimeCodesSettings.BeautifyTimeCodesProfile(preset);
|
||||
LoadSettings();
|
||||
@ -291,5 +335,16 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
numericUpDownChainingInCueOnShotLeftGreenZone.Minimum = numericUpDownChainingInCueOnShotLeftRedZone.Value;
|
||||
numericUpDownChainingOutCueOnShotRightGreenZone.Minimum = numericUpDownChainingOutCueOnShotRightRedZone.Value;
|
||||
}
|
||||
|
||||
private void buttonCreateSimple_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var form = new BeautifyTimeCodesProfileSimple(_frameRate))
|
||||
{
|
||||
if (form.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
LoadSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
552
src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.Designer.cs
generated
Normal file
552
src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.Designer.cs
generated
Normal file
@ -0,0 +1,552 @@
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
partial class BeautifyTimeCodesProfileSimple
|
||||
{
|
||||
/// <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.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BeautifyTimeCodesProfileSimple));
|
||||
this.buttonCancel = new System.Windows.Forms.Button();
|
||||
this.buttonOK = new System.Windows.Forms.Button();
|
||||
this.labelInstructions = new System.Windows.Forms.Label();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.checkBoxSnapClosestCue = new System.Windows.Forms.CheckBox();
|
||||
this.pictureBoxChainingInfo = new System.Windows.Forms.PictureBox();
|
||||
this.labelChainingGapAfterShotChangesPrefix = new System.Windows.Forms.Label();
|
||||
this.numericUpDownChainingGapAfterShotChanges = new System.Windows.Forms.NumericUpDown();
|
||||
this.labelChainingGapAfterShotChangesSuffix = new System.Windows.Forms.Label();
|
||||
this.checkBoxChainingGapAfterShotChanges = new System.Windows.Forms.CheckBox();
|
||||
this.numericUpDownChainingGap = new System.Windows.Forms.NumericUpDown();
|
||||
this.labelChainingGapInstruction = new System.Windows.Forms.Label();
|
||||
this.labelChainingGapSuffix = new System.Windows.Forms.Label();
|
||||
this.labelChainingGap = new System.Windows.Forms.Label();
|
||||
this.labelOffsetInstruction = new System.Windows.Forms.Label();
|
||||
this.labelOffsetSuffix = new System.Windows.Forms.Label();
|
||||
this.numericUpDownOffset = new System.Windows.Forms.NumericUpDown();
|
||||
this.labelOffset = new System.Windows.Forms.Label();
|
||||
this.labelSafeZoneInstruction = new System.Windows.Forms.Label();
|
||||
this.labelSafeZoneSuffix = new System.Windows.Forms.Label();
|
||||
this.numericUpDownSafeZone = new System.Windows.Forms.NumericUpDown();
|
||||
this.comboBoxOutCues = new System.Windows.Forms.ComboBox();
|
||||
this.comboBoxInCues = new System.Windows.Forms.ComboBox();
|
||||
this.labelOutCues = new System.Windows.Forms.Label();
|
||||
this.labelInCues = new System.Windows.Forms.Label();
|
||||
this.labelSafeZone = new System.Windows.Forms.Label();
|
||||
this.labelGapInstruction = new System.Windows.Forms.Label();
|
||||
this.labelGapHint = new System.Windows.Forms.Label();
|
||||
this.labelGapSuffix = new System.Windows.Forms.Label();
|
||||
this.numericUpDownGap = new System.Windows.Forms.NumericUpDown();
|
||||
this.labelGap = new System.Windows.Forms.Label();
|
||||
this.toolTipChaining = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.buttonLoadNetflixRules = new System.Windows.Forms.Button();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxChainingInfo)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownChainingGapAfterShotChanges)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownChainingGap)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownOffset)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSafeZone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownGap)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// 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.Location = new System.Drawing.Point(463, 527);
|
||||
this.buttonCancel.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonCancel.TabIndex = 101;
|
||||
this.buttonCancel.Text = "Cancel";
|
||||
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// buttonOK
|
||||
//
|
||||
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.buttonOK.Location = new System.Drawing.Point(382, 527);
|
||||
this.buttonOK.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonOK.TabIndex = 100;
|
||||
this.buttonOK.Text = "OK";
|
||||
this.buttonOK.UseVisualStyleBackColor = true;
|
||||
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
|
||||
//
|
||||
// labelInstructions
|
||||
//
|
||||
this.labelInstructions.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.labelInstructions.AutoSize = true;
|
||||
this.labelInstructions.Location = new System.Drawing.Point(9, 9);
|
||||
this.labelInstructions.Name = "labelInstructions";
|
||||
this.labelInstructions.Size = new System.Drawing.Size(399, 15);
|
||||
this.labelInstructions.TabIndex = 104;
|
||||
this.labelInstructions.Text = "Enter these basic rules, and the current profile will be updated accordingly.";
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.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.groupBox1.Controls.Add(this.checkBoxSnapClosestCue);
|
||||
this.groupBox1.Controls.Add(this.pictureBoxChainingInfo);
|
||||
this.groupBox1.Controls.Add(this.labelChainingGapAfterShotChangesPrefix);
|
||||
this.groupBox1.Controls.Add(this.numericUpDownChainingGapAfterShotChanges);
|
||||
this.groupBox1.Controls.Add(this.labelChainingGapAfterShotChangesSuffix);
|
||||
this.groupBox1.Controls.Add(this.checkBoxChainingGapAfterShotChanges);
|
||||
this.groupBox1.Controls.Add(this.numericUpDownChainingGap);
|
||||
this.groupBox1.Controls.Add(this.labelChainingGapInstruction);
|
||||
this.groupBox1.Controls.Add(this.labelChainingGapSuffix);
|
||||
this.groupBox1.Controls.Add(this.labelChainingGap);
|
||||
this.groupBox1.Controls.Add(this.labelOffsetInstruction);
|
||||
this.groupBox1.Controls.Add(this.labelOffsetSuffix);
|
||||
this.groupBox1.Controls.Add(this.numericUpDownOffset);
|
||||
this.groupBox1.Controls.Add(this.labelOffset);
|
||||
this.groupBox1.Controls.Add(this.labelSafeZoneInstruction);
|
||||
this.groupBox1.Controls.Add(this.labelSafeZoneSuffix);
|
||||
this.groupBox1.Controls.Add(this.numericUpDownSafeZone);
|
||||
this.groupBox1.Controls.Add(this.comboBoxOutCues);
|
||||
this.groupBox1.Controls.Add(this.comboBoxInCues);
|
||||
this.groupBox1.Controls.Add(this.labelOutCues);
|
||||
this.groupBox1.Controls.Add(this.labelInCues);
|
||||
this.groupBox1.Controls.Add(this.labelSafeZone);
|
||||
this.groupBox1.Controls.Add(this.labelGapInstruction);
|
||||
this.groupBox1.Controls.Add(this.labelGapHint);
|
||||
this.groupBox1.Controls.Add(this.labelGapSuffix);
|
||||
this.groupBox1.Controls.Add(this.numericUpDownGap);
|
||||
this.groupBox1.Controls.Add(this.labelGap);
|
||||
this.groupBox1.Location = new System.Drawing.Point(12, 27);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(525, 490);
|
||||
this.groupBox1.TabIndex = 1;
|
||||
this.groupBox1.TabStop = false;
|
||||
//
|
||||
// checkBoxSnapClosestCue
|
||||
//
|
||||
this.checkBoxSnapClosestCue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.checkBoxSnapClosestCue.Checked = true;
|
||||
this.checkBoxSnapClosestCue.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.checkBoxSnapClosestCue.Location = new System.Drawing.Point(134, 157);
|
||||
this.checkBoxSnapClosestCue.Name = "checkBoxSnapClosestCue";
|
||||
this.checkBoxSnapClosestCue.Size = new System.Drawing.Size(377, 35);
|
||||
this.checkBoxSnapClosestCue.TabIndex = 32;
|
||||
this.checkBoxSnapClosestCue.Text = "For connected subtitles, snap the in or out cue to the shot change based on which" +
|
||||
" one is closer";
|
||||
this.checkBoxSnapClosestCue.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// pictureBoxChainingInfo
|
||||
//
|
||||
this.pictureBoxChainingInfo.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxChainingInfo.Image")));
|
||||
this.pictureBoxChainingInfo.Location = new System.Drawing.Point(15, 381);
|
||||
this.pictureBoxChainingInfo.Name = "pictureBoxChainingInfo";
|
||||
this.pictureBoxChainingInfo.Size = new System.Drawing.Size(16, 16);
|
||||
this.pictureBoxChainingInfo.TabIndex = 31;
|
||||
this.pictureBoxChainingInfo.TabStop = false;
|
||||
//
|
||||
// labelChainingGapAfterShotChangesPrefix
|
||||
//
|
||||
this.labelChainingGapAfterShotChangesPrefix.AutoSize = true;
|
||||
this.labelChainingGapAfterShotChangesPrefix.Location = new System.Drawing.Point(150, 447);
|
||||
this.labelChainingGapAfterShotChangesPrefix.Name = "labelChainingGapAfterShotChangesPrefix";
|
||||
this.labelChainingGapAfterShotChangesPrefix.Size = new System.Drawing.Size(33, 15);
|
||||
this.labelChainingGapAfterShotChangesPrefix.TabIndex = 30;
|
||||
this.labelChainingGapAfterShotChangesPrefix.Text = "Max.";
|
||||
//
|
||||
// numericUpDownChainingGapAfterShotChanges
|
||||
//
|
||||
this.numericUpDownChainingGapAfterShotChanges.Location = new System.Drawing.Point(193, 444);
|
||||
this.numericUpDownChainingGapAfterShotChanges.Maximum = new decimal(new int[] {
|
||||
2000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownChainingGapAfterShotChanges.Name = "numericUpDownChainingGapAfterShotChanges";
|
||||
this.numericUpDownChainingGapAfterShotChanges.Size = new System.Drawing.Size(52, 23);
|
||||
this.numericUpDownChainingGapAfterShotChanges.TabIndex = 10;
|
||||
this.numericUpDownChainingGapAfterShotChanges.Value = new decimal(new int[] {
|
||||
500,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// labelChainingGapAfterShotChangesSuffix
|
||||
//
|
||||
this.labelChainingGapAfterShotChangesSuffix.AutoSize = true;
|
||||
this.labelChainingGapAfterShotChangesSuffix.Location = new System.Drawing.Point(251, 447);
|
||||
this.labelChainingGapAfterShotChangesSuffix.Name = "labelChainingGapAfterShotChangesSuffix";
|
||||
this.labelChainingGapAfterShotChangesSuffix.Size = new System.Drawing.Size(23, 15);
|
||||
this.labelChainingGapAfterShotChangesSuffix.TabIndex = 28;
|
||||
this.labelChainingGapAfterShotChangesSuffix.Text = "ms";
|
||||
//
|
||||
// checkBoxChainingGapAfterShotChanges
|
||||
//
|
||||
this.checkBoxChainingGapAfterShotChanges.AutoSize = true;
|
||||
this.checkBoxChainingGapAfterShotChanges.Checked = true;
|
||||
this.checkBoxChainingGapAfterShotChanges.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.checkBoxChainingGapAfterShotChanges.Location = new System.Drawing.Point(134, 422);
|
||||
this.checkBoxChainingGapAfterShotChanges.Name = "checkBoxChainingGapAfterShotChanges";
|
||||
this.checkBoxChainingGapAfterShotChanges.Size = new System.Drawing.Size(334, 19);
|
||||
this.checkBoxChainingGapAfterShotChanges.TabIndex = 9;
|
||||
this.checkBoxChainingGapAfterShotChanges.Text = "After an out cue on a shot change, the gap may be smaller";
|
||||
this.checkBoxChainingGapAfterShotChanges.UseVisualStyleBackColor = true;
|
||||
this.checkBoxChainingGapAfterShotChanges.CheckedChanged += new System.EventHandler(this.checkBoxChainingGapAfterShotChanges_CheckedChanged);
|
||||
//
|
||||
// numericUpDownChainingGap
|
||||
//
|
||||
this.numericUpDownChainingGap.Location = new System.Drawing.Point(134, 352);
|
||||
this.numericUpDownChainingGap.Maximum = new decimal(new int[] {
|
||||
2000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownChainingGap.Name = "numericUpDownChainingGap";
|
||||
this.numericUpDownChainingGap.Size = new System.Drawing.Size(52, 23);
|
||||
this.numericUpDownChainingGap.TabIndex = 8;
|
||||
this.numericUpDownChainingGap.Value = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// labelChainingGapInstruction
|
||||
//
|
||||
this.labelChainingGapInstruction.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.labelChainingGapInstruction.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.labelChainingGapInstruction.Location = new System.Drawing.Point(131, 381);
|
||||
this.labelChainingGapInstruction.Name = "labelChainingGapInstruction";
|
||||
this.labelChainingGapInstruction.Size = new System.Drawing.Size(380, 30);
|
||||
this.labelChainingGapInstruction.TabIndex = 25;
|
||||
this.labelChainingGapInstruction.Text = "If the space between two subtitles is smaller than this amount, the subtitles wil" +
|
||||
"l be connected.";
|
||||
//
|
||||
// labelChainingGapSuffix
|
||||
//
|
||||
this.labelChainingGapSuffix.AutoSize = true;
|
||||
this.labelChainingGapSuffix.Location = new System.Drawing.Point(192, 355);
|
||||
this.labelChainingGapSuffix.Name = "labelChainingGapSuffix";
|
||||
this.labelChainingGapSuffix.Size = new System.Drawing.Size(23, 15);
|
||||
this.labelChainingGapSuffix.TabIndex = 24;
|
||||
this.labelChainingGapSuffix.Text = "ms";
|
||||
//
|
||||
// labelChainingGap
|
||||
//
|
||||
this.labelChainingGap.AutoSize = true;
|
||||
this.labelChainingGap.Location = new System.Drawing.Point(12, 355);
|
||||
this.labelChainingGap.Name = "labelChainingGap";
|
||||
this.labelChainingGap.Size = new System.Drawing.Size(108, 15);
|
||||
this.labelChainingGap.TabIndex = 22;
|
||||
this.labelChainingGap.Text = "Max. chaining gap:";
|
||||
//
|
||||
// labelOffsetInstruction
|
||||
//
|
||||
this.labelOffsetInstruction.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.labelOffsetInstruction.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.labelOffsetInstruction.Location = new System.Drawing.Point(131, 237);
|
||||
this.labelOffsetInstruction.Name = "labelOffsetInstruction";
|
||||
this.labelOffsetInstruction.Size = new System.Drawing.Size(380, 30);
|
||||
this.labelOffsetInstruction.TabIndex = 21;
|
||||
this.labelOffsetInstruction.Text = "Cues within this distance from shot changes will be considered as being on the sh" +
|
||||
"ot change.";
|
||||
//
|
||||
// labelOffsetSuffix
|
||||
//
|
||||
this.labelOffsetSuffix.AutoSize = true;
|
||||
this.labelOffsetSuffix.Location = new System.Drawing.Point(192, 211);
|
||||
this.labelOffsetSuffix.Name = "labelOffsetSuffix";
|
||||
this.labelOffsetSuffix.Size = new System.Drawing.Size(43, 15);
|
||||
this.labelOffsetSuffix.TabIndex = 20;
|
||||
this.labelOffsetSuffix.Text = "frames";
|
||||
//
|
||||
// numericUpDownOffset
|
||||
//
|
||||
this.numericUpDownOffset.Location = new System.Drawing.Point(134, 208);
|
||||
this.numericUpDownOffset.Maximum = new decimal(new int[] {
|
||||
50,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownOffset.Name = "numericUpDownOffset";
|
||||
this.numericUpDownOffset.Size = new System.Drawing.Size(52, 23);
|
||||
this.numericUpDownOffset.TabIndex = 6;
|
||||
this.numericUpDownOffset.Value = new decimal(new int[] {
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// labelOffset
|
||||
//
|
||||
this.labelOffset.AutoSize = true;
|
||||
this.labelOffset.Location = new System.Drawing.Point(12, 211);
|
||||
this.labelOffset.Name = "labelOffset";
|
||||
this.labelOffset.Size = new System.Drawing.Size(69, 15);
|
||||
this.labelOffset.TabIndex = 18;
|
||||
this.labelOffset.Text = "Max. offset:";
|
||||
//
|
||||
// labelSafeZoneInstruction
|
||||
//
|
||||
this.labelSafeZoneInstruction.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.labelSafeZoneInstruction.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.labelSafeZoneInstruction.Location = new System.Drawing.Point(131, 309);
|
||||
this.labelSafeZoneInstruction.Name = "labelSafeZoneInstruction";
|
||||
this.labelSafeZoneInstruction.Size = new System.Drawing.Size(380, 30);
|
||||
this.labelSafeZoneInstruction.TabIndex = 17;
|
||||
this.labelSafeZoneInstruction.Text = "The amount of frames around shot changes where no cues are allowed.";
|
||||
//
|
||||
// labelSafeZoneSuffix
|
||||
//
|
||||
this.labelSafeZoneSuffix.AutoSize = true;
|
||||
this.labelSafeZoneSuffix.Location = new System.Drawing.Point(192, 283);
|
||||
this.labelSafeZoneSuffix.Name = "labelSafeZoneSuffix";
|
||||
this.labelSafeZoneSuffix.Size = new System.Drawing.Size(43, 15);
|
||||
this.labelSafeZoneSuffix.TabIndex = 16;
|
||||
this.labelSafeZoneSuffix.Text = "frames";
|
||||
//
|
||||
// numericUpDownSafeZone
|
||||
//
|
||||
this.numericUpDownSafeZone.Location = new System.Drawing.Point(134, 280);
|
||||
this.numericUpDownSafeZone.Maximum = new decimal(new int[] {
|
||||
50,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownSafeZone.Name = "numericUpDownSafeZone";
|
||||
this.numericUpDownSafeZone.Size = new System.Drawing.Size(52, 23);
|
||||
this.numericUpDownSafeZone.TabIndex = 7;
|
||||
this.numericUpDownSafeZone.Value = new decimal(new int[] {
|
||||
6,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// comboBoxOutCues
|
||||
//
|
||||
this.comboBoxOutCues.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.comboBoxOutCues.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBoxOutCues.FormattingEnabled = true;
|
||||
this.comboBoxOutCues.Items.AddRange(new object[] {
|
||||
"On the shot change",
|
||||
"1 frame before the shot change",
|
||||
"2 frames before the shot change",
|
||||
"3 frames before the shot change",
|
||||
"The same amount of frames as the gap before the shot change"});
|
||||
this.comboBoxOutCues.Location = new System.Drawing.Point(134, 118);
|
||||
this.comboBoxOutCues.Name = "comboBoxOutCues";
|
||||
this.comboBoxOutCues.Size = new System.Drawing.Size(377, 23);
|
||||
this.comboBoxOutCues.TabIndex = 4;
|
||||
this.comboBoxOutCues.SelectedIndexChanged += new System.EventHandler(this.comboBoxInCues_SelectedIndexChanged);
|
||||
//
|
||||
// comboBoxInCues
|
||||
//
|
||||
this.comboBoxInCues.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.comboBoxInCues.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBoxInCues.FormattingEnabled = true;
|
||||
this.comboBoxInCues.Items.AddRange(new object[] {
|
||||
"On the shot change",
|
||||
"1 frame after the shot change",
|
||||
"2 frames after the shot change",
|
||||
"3 frames after the shot change"});
|
||||
this.comboBoxInCues.Location = new System.Drawing.Point(134, 79);
|
||||
this.comboBoxInCues.Name = "comboBoxInCues";
|
||||
this.comboBoxInCues.Size = new System.Drawing.Size(377, 23);
|
||||
this.comboBoxInCues.TabIndex = 3;
|
||||
this.comboBoxInCues.SelectedIndexChanged += new System.EventHandler(this.comboBoxInCues_SelectedIndexChanged);
|
||||
//
|
||||
// labelOutCues
|
||||
//
|
||||
this.labelOutCues.AutoSize = true;
|
||||
this.labelOutCues.Location = new System.Drawing.Point(12, 121);
|
||||
this.labelOutCues.Name = "labelOutCues";
|
||||
this.labelOutCues.Size = new System.Drawing.Size(112, 15);
|
||||
this.labelOutCues.TabIndex = 11;
|
||||
this.labelOutCues.Text = "Out cues should be:";
|
||||
//
|
||||
// labelInCues
|
||||
//
|
||||
this.labelInCues.AutoSize = true;
|
||||
this.labelInCues.Location = new System.Drawing.Point(12, 82);
|
||||
this.labelInCues.Name = "labelInCues";
|
||||
this.labelInCues.Size = new System.Drawing.Size(102, 15);
|
||||
this.labelInCues.TabIndex = 10;
|
||||
this.labelInCues.Text = "In cues should be:";
|
||||
//
|
||||
// labelSafeZone
|
||||
//
|
||||
this.labelSafeZone.AutoSize = true;
|
||||
this.labelSafeZone.Location = new System.Drawing.Point(12, 283);
|
||||
this.labelSafeZone.Name = "labelSafeZone";
|
||||
this.labelSafeZone.Size = new System.Drawing.Size(60, 15);
|
||||
this.labelSafeZone.TabIndex = 9;
|
||||
this.labelSafeZone.Text = "Safe zone:";
|
||||
//
|
||||
// labelGapInstruction
|
||||
//
|
||||
this.labelGapInstruction.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.labelGapInstruction.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
this.labelGapInstruction.Location = new System.Drawing.Point(131, 51);
|
||||
this.labelGapInstruction.Name = "labelGapInstruction";
|
||||
this.labelGapInstruction.Size = new System.Drawing.Size(380, 15);
|
||||
this.labelGapInstruction.TabIndex = 7;
|
||||
this.labelGapInstruction.Text = "The minimum amount of space between subtitles.";
|
||||
//
|
||||
// labelGapHint
|
||||
//
|
||||
this.labelGapHint.AutoSize = true;
|
||||
this.labelGapHint.ForeColor = System.Drawing.SystemColors.ButtonShadow;
|
||||
this.labelGapHint.Location = new System.Drawing.Point(250, 25);
|
||||
this.labelGapHint.Name = "labelGapHint";
|
||||
this.labelGapHint.Size = new System.Drawing.Size(95, 15);
|
||||
this.labelGapHint.TabIndex = 6;
|
||||
this.labelGapHint.Text = "120 ms @ 25 FPS";
|
||||
//
|
||||
// labelGapSuffix
|
||||
//
|
||||
this.labelGapSuffix.AutoSize = true;
|
||||
this.labelGapSuffix.Location = new System.Drawing.Point(192, 25);
|
||||
this.labelGapSuffix.Name = "labelGapSuffix";
|
||||
this.labelGapSuffix.Size = new System.Drawing.Size(43, 15);
|
||||
this.labelGapSuffix.TabIndex = 5;
|
||||
this.labelGapSuffix.Text = "frames";
|
||||
//
|
||||
// numericUpDownGap
|
||||
//
|
||||
this.numericUpDownGap.Location = new System.Drawing.Point(134, 22);
|
||||
this.numericUpDownGap.Maximum = new decimal(new int[] {
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownGap.Name = "numericUpDownGap";
|
||||
this.numericUpDownGap.Size = new System.Drawing.Size(52, 23);
|
||||
this.numericUpDownGap.TabIndex = 2;
|
||||
this.numericUpDownGap.Value = new decimal(new int[] {
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDownGap.ValueChanged += new System.EventHandler(this.numericUpDownGap_ValueChanged);
|
||||
//
|
||||
// labelGap
|
||||
//
|
||||
this.labelGap.AutoSize = true;
|
||||
this.labelGap.Location = new System.Drawing.Point(12, 25);
|
||||
this.labelGap.Name = "labelGap";
|
||||
this.labelGap.Size = new System.Drawing.Size(31, 15);
|
||||
this.labelGap.TabIndex = 0;
|
||||
this.labelGap.Text = "Gap:";
|
||||
//
|
||||
// toolTipChaining
|
||||
//
|
||||
this.toolTipChaining.IsBalloon = true;
|
||||
this.toolTipChaining.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
||||
//
|
||||
// buttonLoadNetflixRules
|
||||
//
|
||||
this.buttonLoadNetflixRules.Location = new System.Drawing.Point(11, 527);
|
||||
this.buttonLoadNetflixRules.Name = "buttonLoadNetflixRules";
|
||||
this.buttonLoadNetflixRules.Size = new System.Drawing.Size(169, 23);
|
||||
this.buttonLoadNetflixRules.TabIndex = 102;
|
||||
this.buttonLoadNetflixRules.Text = "Load Netflix rules";
|
||||
this.buttonLoadNetflixRules.UseVisualStyleBackColor = true;
|
||||
this.buttonLoadNetflixRules.Click += new System.EventHandler(this.buttonLoadNetflixRules_Click);
|
||||
//
|
||||
// BeautifyTimeCodesProfileSimple
|
||||
//
|
||||
this.AcceptButton = this.buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(549, 562);
|
||||
this.Controls.Add(this.buttonLoadNetflixRules);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Controls.Add(this.labelInstructions);
|
||||
this.Controls.Add(this.buttonCancel);
|
||||
this.Controls.Add(this.buttonOK);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "BeautifyTimeCodesProfileSimple";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "BeautifyTimeCodesProfileSimple";
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxChainingInfo)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownChainingGapAfterShotChanges)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownChainingGap)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownOffset)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSafeZone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownGap)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button buttonCancel;
|
||||
private System.Windows.Forms.Button buttonOK;
|
||||
private System.Windows.Forms.Label labelInstructions;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Label labelGap;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownGap;
|
||||
private System.Windows.Forms.Label labelGapHint;
|
||||
private System.Windows.Forms.Label labelGapSuffix;
|
||||
private System.Windows.Forms.Label labelGapInstruction;
|
||||
private System.Windows.Forms.ComboBox comboBoxOutCues;
|
||||
private System.Windows.Forms.ComboBox comboBoxInCues;
|
||||
private System.Windows.Forms.Label labelOutCues;
|
||||
private System.Windows.Forms.Label labelInCues;
|
||||
private System.Windows.Forms.Label labelSafeZone;
|
||||
private System.Windows.Forms.Label labelOffsetInstruction;
|
||||
private System.Windows.Forms.Label labelOffsetSuffix;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownOffset;
|
||||
private System.Windows.Forms.Label labelOffset;
|
||||
private System.Windows.Forms.Label labelSafeZoneInstruction;
|
||||
private System.Windows.Forms.Label labelSafeZoneSuffix;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownSafeZone;
|
||||
private System.Windows.Forms.Label labelChainingGapInstruction;
|
||||
private System.Windows.Forms.Label labelChainingGapSuffix;
|
||||
private System.Windows.Forms.Label labelChainingGap;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownChainingGap;
|
||||
private System.Windows.Forms.CheckBox checkBoxChainingGapAfterShotChanges;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownChainingGapAfterShotChanges;
|
||||
private System.Windows.Forms.Label labelChainingGapAfterShotChangesSuffix;
|
||||
private System.Windows.Forms.Label labelChainingGapAfterShotChangesPrefix;
|
||||
private System.Windows.Forms.PictureBox pictureBoxChainingInfo;
|
||||
private System.Windows.Forms.ToolTip toolTipChaining;
|
||||
private System.Windows.Forms.CheckBox checkBoxSnapClosestCue;
|
||||
private System.Windows.Forms.Button buttonLoadNetflixRules;
|
||||
}
|
||||
}
|
176
src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.cs
Normal file
176
src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.cs
Normal file
@ -0,0 +1,176 @@
|
||||
using Nikse.SubtitleEdit.Core.Common;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using Nikse.SubtitleEdit.Core.SubtitleFormats;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
public partial class BeautifyTimeCodesProfileSimple : Form
|
||||
{
|
||||
private readonly double _frameRate;
|
||||
|
||||
public BeautifyTimeCodesProfileSimple(double frameRate)
|
||||
{
|
||||
_frameRate = frameRate;
|
||||
|
||||
UiUtil.PreInitialize(this);
|
||||
InitializeComponent();
|
||||
UiUtil.FixFonts(this);
|
||||
|
||||
var language = LanguageSettings.Current.BeautifyTimeCodesProfile;
|
||||
Text = language.CreateSimpleTitle;
|
||||
labelInstructions.Text = language.CreateSimpleInstruction;
|
||||
labelGap.Text = language.Gap;
|
||||
labelGapSuffix.Text = language.Frames;
|
||||
labelGapInstruction.Text = language.CreateSimpleGapInstruction;
|
||||
labelInCues.Text = language.CreateSimpleInCues;
|
||||
comboBoxInCues.Items.Clear();
|
||||
comboBoxInCues.Items.Add(language.CreateSimpleInCues0Frames);
|
||||
comboBoxInCues.Items.Add(language.CreateSimpleInCues1Frames);
|
||||
comboBoxInCues.Items.Add(language.CreateSimpleInCues2Frames);
|
||||
comboBoxInCues.Items.Add(language.CreateSimpleInCues3Frames);
|
||||
comboBoxInCues.SelectedIndex = 0;
|
||||
labelOutCues.Text = language.CreateSimpleOutCues;
|
||||
comboBoxOutCues.Items.Clear();
|
||||
comboBoxOutCues.Items.Add(language.CreateSimpleOutCues0Frames);
|
||||
comboBoxOutCues.Items.Add(language.CreateSimpleOutCues1Frames);
|
||||
comboBoxOutCues.Items.Add(language.CreateSimpleOutCues2Frames);
|
||||
comboBoxOutCues.Items.Add(language.CreateSimpleOutCues3Frames);
|
||||
comboBoxOutCues.Items.Add(language.CreateSimpleOutCuesGap);
|
||||
comboBoxOutCues.SelectedIndex = 0;
|
||||
checkBoxSnapClosestCue.Text = language.CreateSimpleSnapClosestCue;
|
||||
checkBoxSnapClosestCue.Checked = true;
|
||||
labelOffset.Text = language.CreateSimpleMaxOffset;
|
||||
labelOffsetSuffix.Text = language.Frames;
|
||||
labelOffsetInstruction.Text = language.CreateSimpleMaxOffsetInstruction;
|
||||
labelSafeZone.Text = language.CreateSimpleSafeZone;
|
||||
labelSafeZoneSuffix.Text = language.Frames;
|
||||
labelSafeZoneInstruction.Text = language.CreateSimpleSafeZoneInstruction;
|
||||
labelChainingGap.Text = language.CreateSimpleChainingGap;
|
||||
labelChainingGapSuffix.Text = language.Milliseconds;
|
||||
labelChainingGapInstruction.Text = language.CreateSimpleChainingGapInstruction;
|
||||
checkBoxChainingGapAfterShotChanges.Text = language.CreateSimpleChainingGapAfterShotChanges;
|
||||
labelChainingGapAfterShotChangesPrefix.Text = language.Maximum;
|
||||
labelChainingGapAfterShotChangesSuffix.Text = language.Milliseconds;
|
||||
toolTipChaining.SetToolTip(pictureBoxChainingInfo, language.CreateSimpleChainingToolTip);
|
||||
buttonLoadNetflixRules.Text = language.CreateSimpleLoadNetflixRules;
|
||||
|
||||
buttonOK.Text = LanguageSettings.Current.General.Ok;
|
||||
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
|
||||
UiUtil.FixLargeFonts(this, buttonOK);
|
||||
|
||||
RefreshControls();
|
||||
}
|
||||
|
||||
private void RefreshControls()
|
||||
{
|
||||
numericUpDownGap_ValueChanged(numericUpDownGap, EventArgs.Empty);
|
||||
checkBoxChainingGapAfterShotChanges_CheckedChanged(checkBoxChainingGapAfterShotChanges, EventArgs.Empty);
|
||||
comboBoxInCues_SelectedIndexChanged(comboBoxInCues, EventArgs.Empty);
|
||||
}
|
||||
|
||||
private void buttonOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Validation
|
||||
if (numericUpDownSafeZone.Value < numericUpDownOffset.Value)
|
||||
{
|
||||
MessageBox.Show(this, LanguageSettings.Current.BeautifyTimeCodesProfile.OffsetSafeZoneError, LanguageSettings.Current.General.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
// Save settings
|
||||
var gap = Convert.ToInt32(numericUpDownGap.Value);
|
||||
var inCuesGap = comboBoxInCues.SelectedIndex;
|
||||
var outCuesGap = comboBoxOutCues.SelectedIndex;
|
||||
if (comboBoxOutCues.SelectedIndex == comboBoxOutCues.Items.Count - 1)
|
||||
{
|
||||
outCuesGap = gap;
|
||||
}
|
||||
|
||||
var redZone = Convert.ToInt32(numericUpDownOffset.Value);
|
||||
var greenZone = Convert.ToInt32(numericUpDownSafeZone.Value);
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.Gap = Convert.ToInt32(numericUpDownGap.Value);
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.InCuesGap = inCuesGap;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.InCuesLeftGreenZone = greenZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.InCuesLeftRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.InCuesRightRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.InCuesRightGreenZone = greenZone;
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.OutCuesGap = outCuesGap;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.OutCuesLeftGreenZone = greenZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.OutCuesLeftRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.OutCuesRightRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.OutCuesRightGreenZone = greenZone;
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesInCueClosestLeftGap = Math.Max(gap, outCuesGap);
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesInCueClosestRightGap = inCuesGap;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesOutCueClosestLeftGap = checkBoxSnapClosestCue.Checked ? inCuesGap : Math.Max(gap, outCuesGap);
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesOutCueClosestRightGap = checkBoxSnapClosestCue.Checked ? Math.Max(gap, outCuesGap) : inCuesGap;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesLeftGreenZone = greenZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesLeftRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesRightRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesRightGreenZone = greenZone;
|
||||
|
||||
var treadConnectedMs = Math.Round(SubtitleFormat.FramesToMilliseconds(gap, _frameRate) * 1.5);
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ConnectedSubtitlesTreatConnected = Convert.ToInt32(treadConnectedMs);
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingGeneralUseZones = false;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingGeneralMaxGap = Convert.ToInt32(numericUpDownChainingGap.Value);
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingGeneralLeftGreenZone = greenZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingGeneralLeftRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingGeneralShotChangeBehavior = BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.ChainingGeneralShotChangeBehaviorEnum.ExtendUntilShotChange;
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingInCueOnShotUseZones = false;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingInCueOnShotMaxGap = Convert.ToInt32(numericUpDownChainingGap.Value);
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingInCueOnShotLeftGreenZone = greenZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingInCueOnShotLeftRedZone = redZone;
|
||||
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingOutCueOnShotUseZones = false;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingOutCueOnShotMaxGap = checkBoxChainingGapAfterShotChanges.Checked ? Convert.ToInt32(numericUpDownChainingGapAfterShotChanges.Value) : Convert.ToInt32(numericUpDownChainingGap.Value);
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingOutCueOnShotRightRedZone = redZone;
|
||||
Configuration.Settings.BeautifyTimeCodes.Profile.ChainingOutCueOnShotRightGreenZone = greenZone;
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
private void numericUpDownGap_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
int gapFrames = Convert.ToInt32(numericUpDownGap.Value);
|
||||
double gapMs = SubtitleFormat.FramesToMilliseconds(gapFrames, _frameRate);
|
||||
|
||||
labelGapHint.Text = string.Format(LanguageSettings.Current.BeautifyTimeCodesProfile.GapInMsFormat, Math.Round(gapMs), Math.Round(_frameRate, 3));
|
||||
}
|
||||
|
||||
private void checkBoxChainingGapAfterShotChanges_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
labelChainingGapAfterShotChangesPrefix.Enabled = checkBoxChainingGapAfterShotChanges.Checked;
|
||||
numericUpDownChainingGapAfterShotChanges.Enabled = checkBoxChainingGapAfterShotChanges.Checked;
|
||||
labelChainingGapAfterShotChangesSuffix.Enabled = checkBoxChainingGapAfterShotChanges.Checked;
|
||||
}
|
||||
|
||||
private void comboBoxInCues_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (comboBoxInCues.SelectedIndex != 0 || comboBoxOutCues.SelectedIndex != 0)
|
||||
{
|
||||
checkBoxSnapClosestCue.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonLoadNetflixRules_Click(object sender, EventArgs e)
|
||||
{
|
||||
numericUpDownGap.Value = 2;
|
||||
comboBoxInCues.SelectedIndex = 0;
|
||||
comboBoxOutCues.SelectedIndex = 2;
|
||||
checkBoxSnapClosestCue.Checked = false;
|
||||
numericUpDownOffset.Value = 7;
|
||||
numericUpDownSafeZone.Value = 12;
|
||||
numericUpDownChainingGap.Value = 500;
|
||||
checkBoxChainingGapAfterShotChanges.Checked = false;
|
||||
|
||||
RefreshControls();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
<?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>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBoxChainingInfo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAANVJREFUOE+l
|
||||
k1EOgjAQRPuLpwHPRc8DwmXUUwg3kQ/1TVk1oSsS3eTFZmdmaYuEZdV1XcYYG7jA1Rjoq1eaLS8MBYYD
|
||||
3ODugUeaPIXF5rLw8Wn8Bv4Tv+8hNDQ1M5ocPI1Ml0QWJbjbTgbK05SBSgN0OZlhI42mD4vmZnj4oB3o
|
||||
NbkGO4F7BEF2kvjfAG3DE4Xl1waMEj9eouXXBrTaQQW/vsZ9MrDoPFMSKU8j05ucDAUN/T0zowfeM7jf
|
||||
Qw+rHxP0sLNYXoi6kxZGQpOhdQvzmV8VwgNvzMGlpptvoQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="toolTipChaining.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
@ -34106,7 +34106,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
return;
|
||||
}
|
||||
|
||||
using (var form = new BeautifyTimeCodes(_subtitle, _videoInfo, _videoFileName, audioVisualizer.ShotChanges))
|
||||
using (var form = new BeautifyTimeCodes.BeautifyTimeCodes(_subtitle, _videoInfo, _videoFileName, audioVisualizer.ShotChanges))
|
||||
{
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
|
@ -14,6 +14,7 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Nikse.SubtitleEdit.Forms.BeautifyTimeCodes;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms.Options
|
||||
{
|
||||
|
BIN
src/ui/Icons/Info.png
Normal file
BIN
src/ui/Icons/Info.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 326 B |
@ -546,15 +546,96 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
EditProfile = "Edit profile...",
|
||||
NoTimeCodesLoaded = "No time codes loaded",
|
||||
XTimeCodesLoaded = "{0} time codes loaded",
|
||||
NoTimeCodesLoadedError = "You've selected to extract exact frame time codes, but there are no time codes loaded.\n\nPlease click \"{0}\" to extract the time codes first, or disable this option.",
|
||||
NoTimeCodesLoadedError =
|
||||
"You've selected to extract exact frame time codes, but there are no time codes loaded." +
|
||||
Environment.NewLine + Environment.NewLine +
|
||||
"Please click \"{0}\" to extract the time codes first, or disable this option.",
|
||||
NoShotChangesLoaded = "No shot changes loaded",
|
||||
XShotChangesLoaded = "{0} shot changes loaded",
|
||||
NoShotChangesLoadedError = "You've selected to snap cues to shot changes, but there are no shot changes loaded.\n\nPlease click \"{0}\" to generate or import shot changes first, or disable this option.",
|
||||
NoShotChangesLoadedError =
|
||||
"You've selected to snap cues to shot changes, but there are no shot changes loaded." +
|
||||
Environment.NewLine + Environment.NewLine +
|
||||
"Please click \"{0}\" to generate or import shot changes first, or disable this option.",
|
||||
};
|
||||
|
||||
BeautifyTimeCodesProfile = new LanguageStructure.BeautifyTimeCodesProfile
|
||||
{
|
||||
Title = "Edit profile",
|
||||
LoadPreset = "Load preset...",
|
||||
PresetDefault = "Default",
|
||||
PresetNetflix = "Netflix",
|
||||
PresetSDI = "SDI",
|
||||
CreateSimple = "Simple mode...",
|
||||
General = "General",
|
||||
Gap = "Gap:",
|
||||
GapSuffix = "frames (will overwrite custom settings)",
|
||||
InCues = "In cues",
|
||||
SubtitlePreviewText = "Subtitle text.",
|
||||
Zones = "Zones:",
|
||||
OutCues = "Out cues",
|
||||
ConnectedSubtitles = "Connected subtitles",
|
||||
InCueClosest = "In cue is closest",
|
||||
OutCueClosest = "Out cue is closest",
|
||||
TreadAsConnected = "Treat as connected if gap is smaller than:",
|
||||
Milliseconds = "ms",
|
||||
Chaining = "Chaining",
|
||||
InCueOnShot = "In cue on shot change",
|
||||
OutCueOnShot = "Out cue on shot change",
|
||||
MaxGap = "Max. gap:",
|
||||
ShotChangeBehavior = "If there is a shot change in between:",
|
||||
DontChain = "Don't chain",
|
||||
ExtendCrossingShotChange = "Extend, crossing shot change",
|
||||
ExtendUntilShotChange = "Extend until shot change",
|
||||
ResetWarning =
|
||||
"This will reset your current profile and replace all values with those of the selected preset. This cannot be undone." +
|
||||
Environment.NewLine +
|
||||
Environment.NewLine +
|
||||
"Do you want to continue?",
|
||||
CreateSimpleTitle = "Create simple",
|
||||
CreateSimpleInstruction =
|
||||
"Enter these basic rules, and the current profile will be updated accordingly.",
|
||||
CreateSimpleGapInstruction = "The minimum amount of space between subtitles.",
|
||||
CreateSimpleInCues = "In cues should be:",
|
||||
CreateSimpleInCues0Frames = "On the shot change",
|
||||
CreateSimpleInCues1Frames = "1 frame after the shot change",
|
||||
CreateSimpleInCues2Frames = "2 frames after the shot change",
|
||||
CreateSimpleInCues3Frames = "3 frames after the shot change",
|
||||
CreateSimpleOutCues = "Out cues should be:",
|
||||
CreateSimpleOutCues0Frames = "On the shot change",
|
||||
CreateSimpleOutCues1Frames = "1 frame before the shot change",
|
||||
CreateSimpleOutCues2Frames = "2 frames before the shot change",
|
||||
CreateSimpleOutCues3Frames = "3 frames before the shot change",
|
||||
CreateSimpleOutCuesGap = "Minimum gap before the shot change",
|
||||
CreateSimpleSnapClosestCue =
|
||||
"For connected subtitles, snap the in or out cue to the shot change based on which one is closer",
|
||||
CreateSimpleMaxOffset = "Max. offset:",
|
||||
CreateSimpleMaxOffsetInstruction =
|
||||
"Cues within this distance from shot changes will be considered as being on the shot change.",
|
||||
CreateSimpleSafeZone = "Safe zone:",
|
||||
CreateSimpleSafeZoneInstruction = "The amount of frames around shot changes where no cues are allowed.",
|
||||
CreateSimpleChainingGap = "Max. chaining gap:",
|
||||
CreateSimpleChainingGapInstruction =
|
||||
"If the space between two subtitles is smaller than this amount, the subtitles will be connected.",
|
||||
CreateSimpleChainingGapAfterShotChanges = "After an out cue on a shot change, the gap may be smaller",
|
||||
CreateSimpleChainingToolTip =
|
||||
"Chaining subtitles is recommended to ensure a consistent \"rhythm\" in the \"flashing\" of the subtitles." +
|
||||
Environment.NewLine +
|
||||
"This offers a more relaxed viewing experience." +
|
||||
Environment.NewLine +
|
||||
Environment.NewLine +
|
||||
"After chaining, subtitles are either connected (i.e. a subtitle disappears and a new subtitle appears immediately after a slight pause) or not." +
|
||||
Environment.NewLine +
|
||||
"This gives the viewer some sense on when they can shift their focus back to the screen." +
|
||||
Environment.NewLine +
|
||||
Environment.NewLine +
|
||||
"The length of the chaining gap can be a bit smaller right after a subtitle disappears on a shot change, because the changing shot \"resets\" the image in a way." +
|
||||
Environment.NewLine +
|
||||
"We leverage the intrinsic rhythm of the image.",
|
||||
CreateSimpleLoadNetflixRules = "Load Netflix rules",
|
||||
Frames = "frames",
|
||||
Maximum = "Max.",
|
||||
GapInMsFormat = "{0} ms @ {1} FPS",
|
||||
OffsetSafeZoneError = "The safe zone should be larger than the max. offset.",
|
||||
};
|
||||
|
||||
BinEdit = new LanguageStructure.BinEdit
|
||||
|
@ -410,6 +410,60 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
public class BeautifyTimeCodesProfile
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public string LoadPreset { get; set; }
|
||||
public string PresetDefault { get; set; }
|
||||
public string PresetNetflix { get; set; }
|
||||
public string PresetSDI { get; set; }
|
||||
public string CreateSimple { get; set; }
|
||||
public string General { get; set; }
|
||||
public string Gap { get; set; }
|
||||
public string GapSuffix { get; set; }
|
||||
public string InCues { get; set; }
|
||||
public string SubtitlePreviewText { get; set; }
|
||||
public string Zones { get; set; }
|
||||
public string OutCues { get; set; }
|
||||
public string ConnectedSubtitles { get; set; }
|
||||
public string InCueClosest { get; set; }
|
||||
public string OutCueClosest { get; set; }
|
||||
public string TreadAsConnected { get; set; }
|
||||
public string Milliseconds { get; set; }
|
||||
public string Chaining { get; set; }
|
||||
public string InCueOnShot { get; set; }
|
||||
public string OutCueOnShot { get; set; }
|
||||
public string MaxGap { get; set; }
|
||||
public string ShotChangeBehavior { get; set; }
|
||||
public string DontChain { get; set; }
|
||||
public string ExtendCrossingShotChange { get; set; }
|
||||
public string ExtendUntilShotChange { get; set; }
|
||||
public string ResetWarning { get; set; }
|
||||
public string CreateSimpleTitle { get; set; }
|
||||
public string CreateSimpleInstruction { get; set; }
|
||||
public string CreateSimpleGapInstruction { get; set; }
|
||||
public string CreateSimpleInCues { get; set; }
|
||||
public string CreateSimpleInCues0Frames { get; set; }
|
||||
public string CreateSimpleInCues1Frames { get; set; }
|
||||
public string CreateSimpleInCues2Frames { get; set; }
|
||||
public string CreateSimpleInCues3Frames { get; set; }
|
||||
public string CreateSimpleOutCues { get; set; }
|
||||
public string CreateSimpleOutCues0Frames { get; set; }
|
||||
public string CreateSimpleOutCues1Frames { get; set; }
|
||||
public string CreateSimpleOutCues2Frames { get; set; }
|
||||
public string CreateSimpleOutCues3Frames { get; set; }
|
||||
public string CreateSimpleOutCuesGap { get; set; }
|
||||
public string CreateSimpleSnapClosestCue { get; set; }
|
||||
public string CreateSimpleMaxOffset { get; set; }
|
||||
public string CreateSimpleMaxOffsetInstruction { get; set; }
|
||||
public string CreateSimpleSafeZone { get; set; }
|
||||
public string CreateSimpleSafeZoneInstruction { get; set; }
|
||||
public string CreateSimpleChainingGap { get; set; }
|
||||
public string CreateSimpleChainingGapInstruction { get; set; }
|
||||
public string CreateSimpleChainingGapAfterShotChanges { get; set; }
|
||||
public string CreateSimpleChainingToolTip { get; set; }
|
||||
public string CreateSimpleLoadNetflixRules { get; set; }
|
||||
public string Frames { get; set; }
|
||||
public string Maximum { get; set; }
|
||||
public string GapInMsFormat { get; set; }
|
||||
public string OffsetSafeZoneError { get; set; }
|
||||
}
|
||||
|
||||
public class BinEdit
|
||||
|
@ -1386,6 +1386,21 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetBeautifyTimeCodesProfilePresetName(BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset preset)
|
||||
{
|
||||
switch (preset)
|
||||
{
|
||||
case BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset.Default:
|
||||
return LanguageSettings.Current.BeautifyTimeCodesProfile.PresetDefault;
|
||||
case BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset.Netflix:
|
||||
return LanguageSettings.Current.BeautifyTimeCodesProfile.PresetNetflix;
|
||||
case BeautifyTimeCodesSettings.BeautifyTimeCodesProfile.Preset.SDI:
|
||||
return LanguageSettings.Current.BeautifyTimeCodesProfile.PresetSDI;
|
||||
default:
|
||||
return preset.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public static string DecimalSeparator => CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
|
||||
|
||||
public static Control FindFocusedControl(Control control)
|
||||
|
@ -258,18 +258,24 @@
|
||||
<Compile Include="Forms\BatchConvertTsSettings.Designer.cs">
|
||||
<DependentUpon>BatchConvertTsSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BeautifyTimeCodes.cs">
|
||||
<Compile Include="Forms\BeautifyTimeCodes\BeautifyTimeCodes.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BeautifyTimeCodes.Designer.cs">
|
||||
<Compile Include="Forms\BeautifyTimeCodes\BeautifyTimeCodes.Designer.cs">
|
||||
<DependentUpon>BeautifyTimeCodes.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BeautifyTimeCodesProfile.cs">
|
||||
<Compile Include="Forms\BeautifyTimeCodes\BeautifyTimeCodesProfile.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BeautifyTimeCodesProfile.Designer.cs">
|
||||
<Compile Include="Forms\BeautifyTimeCodes\BeautifyTimeCodesProfile.Designer.cs">
|
||||
<DependentUpon>BeautifyTimeCodesProfile.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BeautifyTimeCodes\BeautifyTimeCodesProfileSimple.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BeautifyTimeCodes\BeautifyTimeCodesProfileSimple.Designer.cs">
|
||||
<DependentUpon>BeautifyTimeCodesProfileSimple.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\BinaryEdit\BinEdit.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@ -1592,12 +1598,15 @@
|
||||
<EmbeddedResource Include="Forms\BatchConvertTsSettings.resx">
|
||||
<DependentUpon>BatchConvertTsSettings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\BeautifyTimeCodes.resx">
|
||||
<EmbeddedResource Include="Forms\BeautifyTimeCodes\BeautifyTimeCodes.resx">
|
||||
<DependentUpon>BeautifyTimeCodes.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\BeautifyTimeCodesProfile.resx">
|
||||
<EmbeddedResource Include="Forms\BeautifyTimeCodes\BeautifyTimeCodesProfile.resx">
|
||||
<DependentUpon>BeautifyTimeCodesProfile.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\BeautifyTimeCodes\BeautifyTimeCodesProfileSimple.resx">
|
||||
<DependentUpon>BeautifyTimeCodesProfileSimple.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\BinaryEdit\BinEdit.resx">
|
||||
<DependentUpon>BinEdit.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
Loading…
Reference in New Issue
Block a user