Added more customizable shortcuts incl. new waveform vertical zoom shortcut + some minor fixes

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@723 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2011-10-14 19:09:20 +00:00
parent 1e42a8ecd1
commit 79a9fc8bd0
11 changed files with 260 additions and 101 deletions

View File

@ -1060,15 +1060,11 @@ namespace Nikse.SubtitleEdit.Controls
{
if (e.Modifiers == Keys.None && e.KeyCode == Keys.Add)
{
ZoomFactor = ZoomFactor + 0.1;
if (OnZoomedChanged != null)
OnZoomedChanged.Invoke(null, null);
ZoomIn();
}
else if (e.Modifiers == Keys.None && e.KeyCode == Keys.Subtract)
{
ZoomFactor = ZoomFactor - 0.1;
if (OnZoomedChanged != null)
OnZoomedChanged.Invoke(null, null);
ZoomOut();
}
else if (e.Modifiers == Keys.None && e.KeyCode == Keys.Z)
{
@ -1098,6 +1094,20 @@ namespace Nikse.SubtitleEdit.Controls
}
}
public void ZoomIn()
{
ZoomFactor = ZoomFactor + 0.1;
if (OnZoomedChanged != null)
OnZoomedChanged.Invoke(null, null);
}
public void ZoomOut()
{
ZoomFactor = ZoomFactor - 0.1;
if (OnZoomedChanged != null)
OnZoomedChanged.Invoke(null, null);
}
void WaveForm_MouseWheel(object sender, MouseEventArgs e)
{
int delta = e.Delta;

View File

@ -40,12 +40,13 @@
this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.labelXLinesSelected = new System.Windows.Forms.Label();
this.groupBoxNames.SuspendLayout();
this.groupBoxLinesFound.SuspendLayout();
this.SuspendLayout();
//
//
// buttonOK
//
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.Location = new System.Drawing.Point(570, 559);
this.buttonOK.Name = "buttonOK";
@ -54,9 +55,9 @@
this.buttonOK.Text = "&OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.ButtonOkClick);
//
//
// 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(651, 559);
@ -65,11 +66,11 @@
this.buttonCancel.TabIndex = 15;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
//
//
// groupBoxNames
//
this.groupBoxNames.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
this.groupBoxNames.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBoxNames.Controls.Add(this.listViewNames);
this.groupBoxNames.Location = new System.Drawing.Point(5, 9);
this.groupBoxNames.Name = "groupBoxNames";
@ -77,11 +78,11 @@
this.groupBoxNames.TabIndex = 12;
this.groupBoxNames.TabStop = false;
this.groupBoxNames.Text = "Names found in subtitle";
//
//
// listViewNames
//
this.listViewNames.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
this.listViewNames.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listViewNames.CheckBoxes = true;
this.listViewNames.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
@ -96,22 +97,22 @@
this.listViewNames.UseCompatibleStateImageBehavior = false;
this.listViewNames.View = System.Windows.Forms.View.Details;
this.listViewNames.SelectedIndexChanged += new System.EventHandler(this.ListViewNamesSelectedIndexChanged);
//
//
// columnHeader1
//
//
this.columnHeader1.Text = "Enabled";
this.columnHeader1.Width = 70;
//
//
// columnHeader2
//
//
this.columnHeader2.Text = "Name";
this.columnHeader2.Width = 620;
//
//
// groupBoxLinesFound
//
this.groupBoxLinesFound.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.groupBoxLinesFound.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.groupBoxLinesFound.Controls.Add(this.listViewFixes);
this.groupBoxLinesFound.Location = new System.Drawing.Point(5, 283);
this.groupBoxLinesFound.Name = "groupBoxLinesFound";
@ -119,12 +120,12 @@
this.groupBoxLinesFound.TabIndex = 13;
this.groupBoxLinesFound.TabStop = false;
this.groupBoxLinesFound.Text = "Lines found: {0}";
//
//
// 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.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.columnHeader4,
@ -139,32 +140,44 @@
this.listViewFixes.TabIndex = 9;
this.listViewFixes.UseCompatibleStateImageBehavior = false;
this.listViewFixes.View = System.Windows.Forms.View.Details;
//
this.listViewFixes.SelectedIndexChanged += new System.EventHandler(this.listViewFixes_SelectedIndexChanged);
//
// columnHeader4
//
//
this.columnHeader4.Text = "Apply";
this.columnHeader4.Width = 45;
//
//
// columnHeader5
//
//
this.columnHeader5.Text = "Line#";
this.columnHeader5.Width = 61;
//
//
// columnHeader7
//
//
this.columnHeader7.Text = "Before";
this.columnHeader7.Width = 292;
//
//
// columnHeader8
//
//
this.columnHeader8.Text = "After";
this.columnHeader8.Width = 292;
//
//
// labelXLinesSelected
//
this.labelXLinesSelected.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.labelXLinesSelected.AutoSize = true;
this.labelXLinesSelected.Location = new System.Drawing.Point(5, 559);
this.labelXLinesSelected.Name = "labelXLinesSelected";
this.labelXLinesSelected.Size = new System.Drawing.Size(78, 13);
this.labelXLinesSelected.TabIndex = 16;
this.labelXLinesSelected.Text = "XLinesSelected";
//
// ChangeCasingNames
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F);
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(736, 589);
this.Controls.Add(this.labelXLinesSelected);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.groupBoxNames);
@ -181,6 +194,7 @@
this.groupBoxNames.ResumeLayout(false);
this.groupBoxLinesFound.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
@ -198,5 +212,6 @@
private System.Windows.Forms.ColumnHeader columnHeader5;
private System.Windows.Forms.ColumnHeader columnHeader7;
private System.Windows.Forms.ColumnHeader columnHeader8;
private System.Windows.Forms.Label labelXLinesSelected;
}
}

View File

@ -16,6 +16,7 @@ namespace Nikse.SubtitleEdit.Forms
public ChangeCasingNames()
{
InitializeComponent();
labelXLinesSelected.Text = string.Empty;
Text = Configuration.Settings.Language.ChangeCasingNames.Title;
groupBoxNames.Text = string.Empty;
listViewNames.Columns[0].Text = Configuration.Settings.Language.ChangeCasingNames.Enabled;
@ -174,6 +175,7 @@ namespace Nikse.SubtitleEdit.Forms
private void ListViewNamesSelectedIndexChanged(object sender, EventArgs e)
{
labelXLinesSelected.Text = string.Empty;
if (listViewNames.SelectedItems.Count != 1)
return;
@ -223,7 +225,6 @@ namespace Nikse.SubtitleEdit.Forms
listViewNames.ItemChecked += ListViewNamesItemChecked;
}
internal void FixCasing()
{
foreach (ListViewItem item in listViewFixes.Items)
@ -250,5 +251,13 @@ namespace Nikse.SubtitleEdit.Forms
{
DialogResult = DialogResult.OK;
}
private void listViewFixes_SelectedIndexChanged(object sender, EventArgs e)
{
if (listViewFixes.SelectedItems.Count > 1)
labelXLinesSelected.Text = string.Format(Configuration.Settings.Language.Main.XLinesSelected, listViewFixes.SelectedItems.Count);
else
labelXLinesSelected.Text = string.Empty;
}
}
}

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
<!--
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
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>
@ -26,36 +26,36 @@
<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
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
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
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
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
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
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
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->

View File

@ -88,6 +88,10 @@ namespace Nikse.SubtitleEdit.Forms
bool _cancelWordSpellCheck = false;
Keys _toggleVideoDockUndock = Keys.None;
Keys _video100MsLeft = Keys.None;
Keys _video100MsRight = Keys.None;
Keys _video500MsLeft = Keys.None;
Keys _video500MsRight = Keys.None;
Keys _mainAdjustSetStartAndOffsetTheRest = Keys.None;
Keys _mainAdjustSetEndAndGotoNext = Keys.None;
Keys _mainAdjustInsertViaEndAutoStartAndGoToNext = Keys.None;
@ -95,6 +99,9 @@ namespace Nikse.SubtitleEdit.Forms
Keys _mainInsertBefore = Keys.None;
Keys _mainListViewToggleDashes = Keys.None;
Keys _waveformVerticalZoom = Keys.None;
Keys _waveformZoomIn = Keys.None;
Keys _waveformZoomOut = Keys.None;
Keys _waveformPlaySelection = Keys.None;
bool _videoLoadedGoToSubPosAndPause = false;
bool _makeHistory = true;
string _cutText = string.Empty;
@ -6505,16 +6512,28 @@ namespace Nikse.SubtitleEdit.Forms
bool inListView = tabControlSubtitle.SelectedIndex == TabControlListView;
if (audioVisualizer != null && audioVisualizer.Visible)
if (audioVisualizer != null && audioVisualizer.Visible & e.KeyData == _waveformVerticalZoom)
{
if (e.KeyData == _waveformVerticalZoom)
{
if (audioVisualizer.VerticalZoomPercent > 0.2)
audioVisualizer.VerticalZoomPercent -= 0.1;
else
audioVisualizer.VerticalZoomPercent = 1;
e.SuppressKeyPress = true;
}
if (audioVisualizer.VerticalZoomPercent > 0.2)
audioVisualizer.VerticalZoomPercent -= 0.1;
else
audioVisualizer.VerticalZoomPercent = 1;
e.SuppressKeyPress = true;
}
if (audioVisualizer != null && audioVisualizer.Visible & e.KeyData == _waveformZoomIn)
{
audioVisualizer.ZoomIn();
e.SuppressKeyPress = true;
}
if (audioVisualizer != null && audioVisualizer.Visible & e.KeyData == _waveformZoomOut)
{
audioVisualizer.ZoomOut();
e.SuppressKeyPress = true;
}
else if (audioVisualizer != null && audioVisualizer.Visible & e.KeyData == _waveformPlaySelection)
{
toolStripMenuItemWaveFormPlaySelection_Click(null, null);
e.SuppressKeyPress = true;
}
else if (_mainInsertBefore == e.KeyData && inListView)
{
@ -6857,6 +6876,26 @@ namespace Nikse.SubtitleEdit.Forms
else
undockVideoControlsToolStripMenuItem_Click(null, null);
}
else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video100MsLeft)
{
mediaPlayer.CurrentPosition -= 0.1;
e.SuppressKeyPress = true;
}
else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video100MsRight)
{
mediaPlayer.CurrentPosition += 0.1;
e.SuppressKeyPress = true;
}
else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video500MsLeft)
{
mediaPlayer.CurrentPosition -= 0.5;
e.SuppressKeyPress = true;
}
else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video500MsRight)
{
mediaPlayer.CurrentPosition += 0.5;
e.SuppressKeyPress = true;
}
else if (e.Modifiers == (Keys.Control | Keys.Alt | Keys.Shift) && e.KeyCode == Keys.B) // Ctrl+Alt+Shift+B = Beam subtitles
{
Beamer beamer = new Beamer(this, _subtitle, _subtitleListViewIndex);
@ -6962,6 +7001,7 @@ namespace Nikse.SubtitleEdit.Forms
if (line.Trim().StartsWith("-") || line.Trim().StartsWith("<i>-") || line.Trim().StartsWith("<i> -"))
hasStartDash = true;
}
MakeHistoryForUndo(_language.BeforeToggleDialogueDashes);
if (hasStartDash)
RemoveDashes();
else
@ -8811,14 +8851,15 @@ namespace Nikse.SubtitleEdit.Forms
private void textBoxListViewText_MouseMove(object sender, MouseEventArgs e)
{
if (Control.ModifierKeys == Keys.Control && MouseButtons == System.Windows.Forms.MouseButtons.Left)
{
if (!string.IsNullOrEmpty(textBoxListViewText.SelectedText))
textBoxListViewText.DoDragDrop(textBoxListViewText.SelectedText, DragDropEffects.Copy);
else
textBoxListViewText.DoDragDrop(textBoxListViewText.Text, DragDropEffects.Copy);
}
else if (AutoRepeatContinueOn && !textBoxSearchWord.Focused)
//if (Control.ModifierKeys == Keys.Control && MouseButtons == System.Windows.Forms.MouseButtons.Left)
//{
// if (!string.IsNullOrEmpty(textBoxListViewText.SelectedText))
// textBoxListViewText.DoDragDrop(textBoxListViewText.SelectedText, DragDropEffects.Copy);
// else
// textBoxListViewText.DoDragDrop(textBoxListViewText.Text, DragDropEffects.Copy);
//}
//else
if (AutoRepeatContinueOn && !textBoxSearchWord.Focused)
{
string selectedText = textBoxListViewText.SelectedText;
if (!string.IsNullOrEmpty(selectedText))
@ -9146,6 +9187,8 @@ namespace Nikse.SubtitleEdit.Forms
_mainInsertAfter = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainInsertAfter);
_mainInsertBefore = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainInsertBefore);
_waveformVerticalZoom = Utilities.GetKeys(Configuration.Settings.Shortcuts.WaveformVerticalZoom);
_waveformZoomIn = Utilities.GetKeys(Configuration.Settings.Shortcuts.WaveformZoomIn);
_waveformZoomOut = Utilities.GetKeys(Configuration.Settings.Shortcuts.WaveformZoomOut);
}
private void LoadPlugins()

View File

@ -445,6 +445,14 @@ namespace Nikse.SubtitleEdit.Forms
TreeNode videoNode = new TreeNode(Configuration.Settings.Language.Main.Menu.Video.Title);
videoNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.Video.ShowHideVideo + GetShortcutText(Configuration.Settings.Shortcuts.MainVideoShowHideVideo));
videoNode.Nodes.Add(Configuration.Settings.Language.Settings.ToggleDockUndockOfVideoControls + GetShortcutText(Configuration.Settings.Shortcuts.MainVideoToggleVideoControls));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.GoBack100Milliseconds))
videoNode.Nodes.Add(Configuration.Settings.Language.Settings.GoBack100Milliseconds + GetShortcutText(Configuration.Settings.Shortcuts.MainVideo100MsLeft));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.GoForward100Milliseconds))
videoNode.Nodes.Add(Configuration.Settings.Language.Settings.GoForward100Milliseconds + GetShortcutText(Configuration.Settings.Shortcuts.MainVideo100MsRight));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.GoBack500Milliseconds))
videoNode.Nodes.Add(Configuration.Settings.Language.Settings.GoBack500Milliseconds + GetShortcutText(Configuration.Settings.Shortcuts.MainVideo500MsLeft));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.GoForward500Milliseconds))
videoNode.Nodes.Add(Configuration.Settings.Language.Settings.GoForward500Milliseconds + GetShortcutText(Configuration.Settings.Shortcuts.MainVideo500MsRight));
treeViewShortcuts.Nodes.Add(videoNode);
TreeNode SyncNode = new TreeNode(Configuration.Settings.Language.Main.Menu.Synchronization.Title);
@ -455,7 +463,8 @@ namespace Nikse.SubtitleEdit.Forms
ListViewNode.Nodes.Add(Configuration.Settings.Language.General.Italic + GetShortcutText(Configuration.Settings.Shortcuts.MainListViewItalic));
ListViewNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.ContextMenu.InsertAfter + GetShortcutText(Configuration.Settings.Shortcuts.MainInsertAfter));
ListViewNode.Nodes.Add(Configuration.Settings.Language.Main.Menu.ContextMenu.InsertBefore + GetShortcutText(Configuration.Settings.Shortcuts.MainInsertBefore));
ListViewNode.Nodes.Add("Toggle dashes" + GetShortcutText(Configuration.Settings.Shortcuts.MainListViewToggleDashes));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.ToggleDialogueDashes)) // TODO: Remove in SE 3.3
ListViewNode.Nodes.Add(Configuration.Settings.Language.Settings.ToggleDialogueDashes + GetShortcutText(Configuration.Settings.Shortcuts.MainListViewToggleDashes));
treeViewShortcuts.Nodes.Add(ListViewNode);
TreeNode TextBoxNode = new TreeNode(Configuration.Settings.Language.Settings.TextBox);
@ -469,7 +478,11 @@ namespace Nikse.SubtitleEdit.Forms
treeViewShortcuts.Nodes.Add(adjustNode);
TreeNode audioVisualizerNode = new TreeNode(Configuration.Settings.Language.Settings.WaveformAndSpectrogram);
audioVisualizerNode.Nodes.Add("Vertical zoom" + GetShortcutText(Configuration.Settings.Shortcuts.WaveformVerticalZoom));
audioVisualizerNode.Nodes.Add(Configuration.Settings.Language.WaveForm.ZoomIn + GetShortcutText(Configuration.Settings.Shortcuts.WaveformZoomIn));
audioVisualizerNode.Nodes.Add(Configuration.Settings.Language.WaveForm.ZoomOut + GetShortcutText(Configuration.Settings.Shortcuts.WaveformZoomOut));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.VerticalZoom)) // TODO: Remove in SE 3.3
audioVisualizerNode.Nodes.Add(Configuration.Settings.Language.Settings.VerticalZoom + GetShortcutText(Configuration.Settings.Shortcuts.WaveformVerticalZoom));
audioVisualizerNode.Nodes.Add(Configuration.Settings.Language.WaveForm.PlaySelection + GetShortcutText(Configuration.Settings.Shortcuts.WaveformPlaySelection));
treeViewShortcuts.Nodes.Add(audioVisualizerNode);
@ -860,6 +873,14 @@ namespace Nikse.SubtitleEdit.Forms
Configuration.Settings.Shortcuts.MainVideoShowHideVideo = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Settings.ToggleDockUndockOfVideoControls.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainVideoToggleVideoControls = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Settings.GoBack100Milliseconds.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainVideo100MsLeft = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Settings.GoForward100Milliseconds.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainVideo100MsRight = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Settings.GoBack500Milliseconds.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainVideo500MsLeft = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Settings.GoForward500Milliseconds.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainVideo500MsRight = GetShortcut(node.Text);
}
}
@ -886,7 +907,7 @@ namespace Nikse.SubtitleEdit.Forms
Configuration.Settings.Shortcuts.MainInsertAfter = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Main.Menu.ContextMenu.InsertBefore.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainInsertBefore = GetShortcut(node.Text);
else if (text == ("Toggle dashes").Replace("&", string.Empty))
else if (text == Configuration.Settings.Language.Settings.ToggleDialogueDashes.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainListViewToggleDashes = GetShortcut(node.Text);
}
}
@ -923,8 +944,14 @@ namespace Nikse.SubtitleEdit.Forms
if (node.Text.Contains("["))
{
string text = node.Text.Substring(0, node.Text.IndexOf("[")).Trim();
if (text == ("Vertical zoom").Replace("&", string.Empty))
if (text == (Configuration.Settings.Language.Settings.VerticalZoom).Replace("&", string.Empty))
Configuration.Settings.Shortcuts.WaveformVerticalZoom = GetShortcut(node.Text);
else if (text == (Configuration.Settings.Language.WaveForm.ZoomIn).Replace("&", string.Empty))
Configuration.Settings.Shortcuts.WaveformZoomIn = GetShortcut(node.Text);
else if (text == (Configuration.Settings.Language.WaveForm.ZoomOut).Replace("&", string.Empty))
Configuration.Settings.Shortcuts.WaveformZoomOut = GetShortcut(node.Text);
else if (text == (Configuration.Settings.Language.WaveForm.PlaySelection).Replace("&", string.Empty))
Configuration.Settings.Shortcuts.WaveformPlaySelection = GetShortcut(node.Text);
}
}

View File

@ -75,7 +75,7 @@ namespace Nikse.SubtitleEdit.Logic
{
Title = "Subtitle Edit",
Version = "3.2",
TranslatedBy = "", //"Translated by Nikse",
TranslatedBy = "Translated by Nikse",
CultureName = "en-US",
HelpFile = string.Empty,
OK = "&OK",
@ -384,7 +384,7 @@ namespace Nikse.SubtitleEdit.Logic
RemovedEmptyLine = "Removed empty line",
RemovedEmptyLineAtTop = "Removed empty line at top",
RemovedEmptyLineAtBottom = "Removed empty line at bottom",
RemovedEmptyLinesUnsedLineBreaks = "Remove empty lines/unused line breaks",
RemovedEmptyLinesUnsedLineBreaks = "Removed empty lines/unused line breaks",
EmptyLinesRemovedX = "Empty lines removed: {0}",
FixOverlappingDisplayTimes = "Fix overlapping display times",
FixShortDisplayTimes = "Fix short display times",
@ -604,7 +604,7 @@ namespace Nikse.SubtitleEdit.Logic
BeforeReplace = "Before replace: {0}",
MatchFoundX = "Match found: {0}",
NoMatchFoundX = "No match found: {0}",
FoundNothingToReplace = "Found nothing found to replace",
FoundNothingToReplace = "Found nothing to replace",
ReplaceCountX = "Replace count: {0}",
NoXFoundAtLineY = "Match found at line {0}: {1}",
OneReplacementMade = "One replacement made.",
@ -754,9 +754,10 @@ namespace Nikse.SubtitleEdit.Logic
XStartedSessionYAtZ = "{0}: Started session {1} at {2}",
SpellChekingViaWordXLineYOfX = "Spell checking using Word {0} - line {1} / {2}",
UnableToStartWord = "Unable to start Microsoft Word",
SpellCheckAbortedXCorrections = "Spell check aborted. {0} lines was modified.",
SpellCheckCompletedXCorrections = "Spell check completed. {0} lines was modified.",
SpellCheckAbortedXCorrections = "Spell check aborted. {0} lines were modified.",
SpellCheckCompletedXCorrections = "Spell check completed. {0} lines were modified.",
OpenOtherSubtitle = "Open other subtitle",
BeforeToggleDialogueDashes = "Before toggle of dialogue dashes",
Menu = new LanguageStructure.Main.MainMenu
{
@ -1085,7 +1086,7 @@ can edit in same subtitle file (collaboration)",
{
Title = "Remove text for hearing impaired",
RemoveTextConditions = "Remove text conditions",
RemoveTextBetween = "Remove text conditions",
RemoveTextBetween = "Remove text between",
SquareBrackets = "'[' and ']'",
Brackets = "'{' and '}'",
QuestionMarks = "'?' and '?'",
@ -1209,7 +1210,7 @@ can edit in same subtitle file (collaboration)",
WaveFormBackgroundColor = "Back color",
WaveFormTextColor = "Text color",
WaveformAndSpectrogramsFolderEmpty = "Empty 'Spectrograms' and 'Waveforms' folders",
WaveformAndSpectrogramsFolderInfo = "'Waveforms' and 'Spectrograms' folders contains {0} files ({1:0.00} MB)",
WaveformAndSpectrogramsFolderInfo = "'Waveforms' and 'Spectrograms' folders contain {0} files ({1:0.00} MB)",
Spectrogram = "Spectrogram",
GenerateSpectrogram = "Generate spectrogram",
SpectrogramAppearance = "Spectrogram appearance",
@ -1262,6 +1263,12 @@ can edit in same subtitle file (collaboration)",
ShortcutIsNotValid = "Shortcut is not valid: {0}",
ToggleDockUndockOfVideoControls = "Toggle dock/undock of video controls",
AdjustViaEndAutoStartAndGoToNext = "Adjust via end position and go to next",
ToggleDialogueDashes = "Toogle dialogue dashes",
VerticalZoom = "Vertical zoom",
GoBack100Milliseconds = "100 ms back",
GoForward100Milliseconds = "100 ms forward",
GoBack500Milliseconds = "500 ms back",
GoForward500Milliseconds = "500 ms forward",
};
ShowEarlierLater = new LanguageStructure.ShowEarlierLater

View File

@ -679,6 +679,7 @@
public string SpellCheckAbortedXCorrections { get; set; }
public string SpellCheckCompletedXCorrections { get; set; }
public string OpenOtherSubtitle { get; set; }
public string BeforeToggleDialogueDashes { get; set; }
public class MainMenu
{
@ -1191,6 +1192,12 @@
public string ShortcutIsNotValid { get; set; }
public string ToggleDockUndockOfVideoControls { get; set; }
public string AdjustViaEndAutoStartAndGoToNext { get; set; }
public string ToggleDialogueDashes { get; set; }
public string VerticalZoom { get; set; }
public string GoBack100Milliseconds { get; set; }
public string GoForward100Milliseconds { get; set; }
public string GoBack500Milliseconds { get; set; }
public string GoForward500Milliseconds { get; set; }
}
public class ShowEarlierLater

View File

@ -425,6 +425,10 @@ namespace Nikse.SubtitleEdit.Logic
public string MainToolsFixCommonErrors { get; set; }
public string MainVideoShowHideVideo { get; set; }
public string MainVideoToggleVideoControls { get; set; }
public string MainVideo100MsLeft { get; set; }
public string MainVideo100MsRight { get; set; }
public string MainVideo500MsLeft { get; set; }
public string MainVideo500MsRight { get; set; }
public string MainSynchronizationAdjustTimes { get; set; }
public string MainListViewItalic { get; set; }
public string MainListViewToggleDashes { get; set; }
@ -435,6 +439,9 @@ namespace Nikse.SubtitleEdit.Logic
public string MainInsertAfter { get; set; }
public string MainInsertBefore { get; set; }
public string WaveformVerticalZoom { get; set; }
public string WaveformZoomIn { get; set; }
public string WaveformZoomOut { get; set; }
public string WaveformPlaySelection { get; set; }
public Shortcuts()
{
@ -449,6 +456,10 @@ namespace Nikse.SubtitleEdit.Logic
MainEditGoToLineNumber = "Control+G";
MainToolsFixCommonErrors = "Control+Shift+F";
MainVideoShowHideVideo = "Control+Q";
MainVideo100MsLeft = "Control+Left";
MainVideo100MsRight = "Control+Right";
MainVideo500MsLeft = "Alt+Left";
MainVideo500MsRight = "Alt+Right";
MainSynchronizationAdjustTimes = "Control+Shift+A";
MainListViewItalic = "Control+I";
MainTextBoxItalic = "Control+I";
@ -458,6 +469,7 @@ namespace Nikse.SubtitleEdit.Logic
MainInsertAfter = "Alt+Ins";
MainInsertBefore = "Control+Shift+Ins";
WaveformVerticalZoom = string.Empty;
WaveformPlaySelection = string.Empty;
}
}
@ -1135,6 +1147,18 @@ namespace Nikse.SubtitleEdit.Logic
subNode = node.SelectSingleNode("MainVideoToggleVideoControls");
if (subNode != null)
settings.Shortcuts.MainVideoToggleVideoControls = subNode.InnerText;
subNode = node.SelectSingleNode("MainVideo100MsLeft");
if (subNode != null)
settings.Shortcuts.MainVideo100MsLeft = subNode.InnerText;
subNode = node.SelectSingleNode("MainVideo100MsRight");
if (subNode != null)
settings.Shortcuts.MainVideo100MsRight = subNode.InnerText;
subNode = node.SelectSingleNode("MainVideo500MsLeft");
if (subNode != null)
settings.Shortcuts.MainVideo500MsLeft = subNode.InnerText;
subNode = node.SelectSingleNode("MainVideo500MsRight");
if (subNode != null)
settings.Shortcuts.MainVideo500MsRight = subNode.InnerText;
subNode = node.SelectSingleNode("MainSynchronizationAdjustTimes");
if (subNode != null)
settings.Shortcuts.MainSynchronizationAdjustTimes = subNode.InnerText;
@ -1165,6 +1189,15 @@ namespace Nikse.SubtitleEdit.Logic
subNode = node.SelectSingleNode("WaveformVerticalZoom");
if (subNode != null)
settings.Shortcuts.WaveformVerticalZoom = subNode.InnerText;
subNode = node.SelectSingleNode("WaveformZoomIn");
if (subNode != null)
settings.Shortcuts.WaveformZoomIn = subNode.InnerText;
subNode = node.SelectSingleNode("WaveformZoomOut");
if (subNode != null)
settings.Shortcuts.WaveformZoomOut = subNode.InnerText;
subNode = node.SelectSingleNode("WaveformPlaySelection");
if (subNode != null)
settings.Shortcuts.WaveformPlaySelection = subNode.InnerText;
}
settings.RemoveTextForHearingImpaired = new RemoveTextForHearingImpairedSettings();
@ -1423,6 +1456,10 @@ namespace Nikse.SubtitleEdit.Logic
textWriter.WriteElementString("MainToolsFixCommonErrors", settings.Shortcuts.MainToolsFixCommonErrors);
textWriter.WriteElementString("MainVideoShowHideVideo", settings.Shortcuts.MainVideoShowHideVideo);
textWriter.WriteElementString("MainVideoToggleVideoControls", settings.Shortcuts.MainVideoToggleVideoControls);
textWriter.WriteElementString("MainVideo100MsLeft", settings.Shortcuts.MainVideo100MsLeft);
textWriter.WriteElementString("MainVideo100MsRight", settings.Shortcuts.MainVideo100MsRight);
textWriter.WriteElementString("MainVideo500MsLeft", settings.Shortcuts.MainVideo500MsLeft);
textWriter.WriteElementString("MainVideo500MsRight", settings.Shortcuts.MainVideo500MsRight);
textWriter.WriteElementString("MainSynchronizationAdjustTimes", settings.Shortcuts.MainSynchronizationAdjustTimes);
textWriter.WriteElementString("MainListViewItalic", settings.Shortcuts.MainListViewItalic);
textWriter.WriteElementString("MainListViewToggleDashes", settings.Shortcuts.MainListViewToggleDashes);
@ -1432,7 +1469,10 @@ namespace Nikse.SubtitleEdit.Logic
textWriter.WriteElementString("MainAdjustViaEndAutoStartAndGoToNext", settings.Shortcuts.MainAdjustViaEndAutoStartAndGoToNext);
textWriter.WriteElementString("MainInsertAfter", settings.Shortcuts.MainInsertAfter);
textWriter.WriteElementString("MainInsertBefore", settings.Shortcuts.MainInsertBefore);
textWriter.WriteElementString("WaveformVerticalZoom", settings.Shortcuts.WaveformVerticalZoom);
textWriter.WriteElementString("WaveformVerticalZoom", settings.Shortcuts.WaveformVerticalZoom);
textWriter.WriteElementString("WaveformZoomIn", settings.Shortcuts.WaveformZoomIn);
textWriter.WriteElementString("WaveformZoomOut", settings.Shortcuts.WaveformZoomOut);
textWriter.WriteElementString("WaveformPlaySelection", settings.Shortcuts.WaveformPlaySelection);
textWriter.WriteEndElement();
textWriter.WriteStartElement("RemoveTextForHearingImpaired", "");

View File

@ -74,6 +74,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
new UTSubtitleXml(),
new Utx(),
new UtxFrames(),
new WebVTT(),
new YouTubeAnnotations(),
new YouTubeSbv(),
new ZeroG(),

View File

@ -1201,7 +1201,7 @@ namespace Nikse.SubtitleEdit.Logic
//if (IsWmpAvailable)
// return new WmpPlayer();
throw new NotSupportedException("You need DirectX or VLC media player 1.1.x installed as well as Subtitle Edit dll files!");
throw new NotSupportedException("You need DirectX, VLC media player 1.1.x, or MPlayer2 installed as well as Subtitle Edit dll files in order to use the video player!");
}
public static void InitializeVideoPlayerAndContainer(string fileName, VideoInfo videoInfo, VideoPlayerContainer videoPlayerContainer, EventHandler onVideoLoaded, EventHandler onVideoEnded)