Added two new adjust shortcuts + fixed minor adjust bug - thx Deanna/Seamlik :)

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@1069 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2012-03-24 13:39:04 +00:00
parent 0f78b34604
commit 3e1fb8c702
6 changed files with 111 additions and 24 deletions

View File

@ -2452,7 +2452,7 @@
this.buttonSetEnd.TabIndex = 4;
this.buttonSetEnd.Text = "Set &end time";
this.buttonSetEnd.UseVisualStyleBackColor = true;
this.buttonSetEnd.Click += new System.EventHandler(this.buttonSetEnd_Click);
this.buttonSetEnd.Click += new System.EventHandler(this.ButtonSetEndClick);
//
// buttonInsertNewText
//
@ -2462,7 +2462,7 @@
this.buttonInsertNewText.TabIndex = 0;
this.buttonInsertNewText.Text = "&Insert new subtitle at vpos";
this.buttonInsertNewText.UseVisualStyleBackColor = true;
this.buttonInsertNewText.Click += new System.EventHandler(this.buttonInsertNewText_Click);
this.buttonInsertNewText.Click += new System.EventHandler(this.ButtonInsertNewTextClick);
//
// buttonSetStartTime
//
@ -2667,7 +2667,7 @@
this.buttonAdjustSetEndTime.TabIndex = 3;
this.buttonAdjustSetEndTime.Text = "Set end time";
this.buttonAdjustSetEndTime.UseVisualStyleBackColor = true;
this.buttonAdjustSetEndTime.Click += new System.EventHandler(this.buttonSetEnd_Click);
this.buttonAdjustSetEndTime.Click += new System.EventHandler(this.ButtonSetEndClick);
//
// buttonSetEndAndGoToNext
//
@ -2677,7 +2677,7 @@
this.buttonSetEndAndGoToNext.TabIndex = 1;
this.buttonSetEndAndGoToNext.Text = "Set e&nd && goto next";
this.buttonSetEndAndGoToNext.UseVisualStyleBackColor = true;
this.buttonSetEndAndGoToNext.Click += new System.EventHandler(this.buttonSetEndAndGoToNext_Click);
this.buttonSetEndAndGoToNext.Click += new System.EventHandler(this.ButtonSetEndAndGoToNextClick);
//
// buttonSetStartAndOffsetRest
//
@ -2801,7 +2801,7 @@
this.buttonAdjustSecForward1.TabIndex = 8;
this.buttonAdjustSecForward1.Text = ">>";
this.buttonAdjustSecForward1.UseVisualStyleBackColor = true;
this.buttonAdjustSecForward1.Click += new System.EventHandler(this.buttonAdjustSecForward_Click);
this.buttonAdjustSecForward1.Click += new System.EventHandler(this.ButtonAdjustSecForwardClick);
//
// numericUpDownSecAdjust1
//
@ -2835,7 +2835,7 @@
this.buttonAdjustSecBack1.TabIndex = 6;
this.buttonAdjustSecBack1.Text = "<<";
this.buttonAdjustSecBack1.UseVisualStyleBackColor = true;
this.buttonAdjustSecBack1.Click += new System.EventHandler(this.buttonAdjustSecBack_Click);
this.buttonAdjustSecBack1.Click += new System.EventHandler(this.ButtonAdjustSecBackClick);
//
// labelVideoPosition2
//

View File

@ -112,6 +112,8 @@ namespace Nikse.SubtitleEdit.Forms
Keys _mainAdjustSetEndAndGotoNext = Keys.None;
Keys _mainAdjustInsertViaEndAutoStartAndGoToNext = Keys.None;
Keys _mainAdjustSetStartAutoDurationAndGoToNext = Keys.None;
Keys _mainAdjustSetEndNextStartAndGoToNext = Keys.None;
Keys _mainAdjustStartDownEndUpAndGoToNext = Keys.None;
Keys _mainAdjustSetStart = Keys.None;
Keys _mainAdjustSetStartOnly = Keys.None;
Keys _mainAdjustSetEnd = Keys.None;
@ -134,6 +136,7 @@ namespace Nikse.SubtitleEdit.Forms
bool _makeHistory = true;
string _cutText = string.Empty;
private Paragraph _mainCreateStartDownEndUpParagraph;
private Paragraph _mainAdjustStartDownEndUpAndGoToNextParagraph;
private bool AutoRepeatContinueOn
{
@ -7724,7 +7727,7 @@ namespace Nikse.SubtitleEdit.Forms
}
else if (_mainAdjustSetEndAndGotoNext == e.KeyData) // e.Modifiers == Keys.Shift && e.KeyCode == Keys.Space)
{
buttonSetEndAndGoToNext_Click(null, null);
ButtonSetEndAndGoToNextClick(null, null);
e.SuppressKeyPress = true;
}
else if (e.Modifiers == Keys.None && e.KeyCode == Keys.F9)
@ -7734,7 +7737,7 @@ namespace Nikse.SubtitleEdit.Forms
}
else if (e.Modifiers == Keys.None && e.KeyCode == Keys.F10)
{
buttonSetEndAndGoToNext_Click(null, null);
ButtonSetEndAndGoToNextClick(null, null);
e.SuppressKeyPress = true;
}
else if ((e.Modifiers == Keys.None && e.KeyCode == Keys.F11) || _mainAdjustSetStart == e.KeyData)
@ -7750,7 +7753,7 @@ namespace Nikse.SubtitleEdit.Forms
else if ((e.Modifiers == Keys.None && e.KeyCode == Keys.F12) || _mainAdjustSetEnd == e.KeyData)
{
StopAutoDuration();
buttonSetEnd_Click(null, null);
ButtonSetEndClick(null, null);
e.SuppressKeyPress = true;
}
else if (_mainAdjustInsertViaEndAutoStartAndGoToNext == e.KeyData)
@ -7763,6 +7766,17 @@ namespace Nikse.SubtitleEdit.Forms
SetCurrentStartAutoDurationAndGotoNext(FirstSelectedIndex);
e.SuppressKeyPress = true;
}
else if (_mainAdjustSetEndNextStartAndGoToNext == e.KeyData)
{
SetCurrentEndNextStartAndGoToNext(FirstSelectedIndex);
e.SuppressKeyPress = true;
}
else if (_mainAdjustStartDownEndUpAndGoToNext == e.KeyData && _mainAdjustStartDownEndUpAndGoToNextParagraph == null)
{
_mainAdjustStartDownEndUpAndGoToNextParagraph = _subtitle.GetParagraphOrDefault(FirstSelectedIndex);
SetStartTime(true);
e.SuppressKeyPress = true;
}
}
}
else if (tabControlButtons.SelectedTab == tabPageCreate && mediaPlayer.VideoPlayer != null)
@ -7783,12 +7797,12 @@ namespace Nikse.SubtitleEdit.Forms
else if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.F9)
{
StopAutoDuration();
buttonSetEnd_Click(null, null);
ButtonSetEndClick(null, null);
e.SuppressKeyPress = true;
}
else if (e.Modifiers == Keys.None && e.KeyCode == Keys.F9)
{
buttonInsertNewText_Click(null, null);
ButtonInsertNewTextClick(null, null);
e.SuppressKeyPress = true;
}
else if ((e.Modifiers == Keys.None && e.KeyCode == Keys.F10) || _mainCreatePlayFromJustBefore == e.KeyData)
@ -7804,7 +7818,7 @@ namespace Nikse.SubtitleEdit.Forms
else if ((e.Modifiers == Keys.None && e.KeyCode == Keys.F12) || _mainCreateSetEnd == e.KeyData)
{
StopAutoDuration();
buttonSetEnd_Click(null, null);
ButtonSetEndClick(null, null);
e.SuppressKeyPress = true;
}
else if (_mainCreateStartDownEndUp == e.KeyData)
@ -9345,12 +9359,13 @@ namespace Nikse.SubtitleEdit.Forms
}
}
private void buttonSetEnd_Click(object sender, EventArgs e)
private void ButtonSetEndClick(object sender, EventArgs e)
{
if (SubtitleListview1.SelectedItems.Count == 1)
{
int index = SubtitleListview1.SelectedItems[0].Index;
double videoPosition = mediaPlayer.CurrentPosition;
int index = SubtitleListview1.SelectedItems[0].Index;
MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.VideoControls.BeforeChangingTimeInWaveFormX, "#" + _subtitle.Paragraphs[index].Number + " " + _subtitle.Paragraphs[index].Text));
_subtitle.Paragraphs[index].EndTime = new TimeCode(TimeSpan.FromSeconds(videoPosition));
SubtitleListview1.SetStartTime(index, _subtitle.Paragraphs[index]);
@ -9360,7 +9375,7 @@ namespace Nikse.SubtitleEdit.Forms
}
}
private void buttonInsertNewText_Click(object sender, EventArgs e)
private void ButtonInsertNewTextClick(object sender, EventArgs e)
{
mediaPlayer.Pause();
@ -9950,7 +9965,7 @@ namespace Nikse.SubtitleEdit.Forms
}
}
private void buttonSetEndAndGoToNext_Click(object sender, EventArgs e)
private void ButtonSetEndAndGoToNextClick(object sender, EventArgs e)
{
if (SubtitleListview1.SelectedItems.Count == 1)
{
@ -9960,7 +9975,7 @@ namespace Nikse.SubtitleEdit.Forms
// save history
_makeHistory = false;
string oldDuration = _subtitle.Paragraphs[index].Duration.ToString();
Paragraph temp = new Paragraph(_subtitle.Paragraphs[index]);
var temp = new Paragraph(_subtitle.Paragraphs[index]);
temp.EndTime.TotalMilliseconds = new TimeCode(TimeSpan.FromSeconds(videoPosition)).TotalMilliseconds;
MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.DisplayTimeAdjustedX, "#" + _subtitle.Paragraphs[index].Number + ": " + oldDuration + " -> " + temp.Duration.ToString()));
@ -9980,20 +9995,18 @@ namespace Nikse.SubtitleEdit.Forms
ShowSource();
}
SubtitleListview1.SetStartTime(index + 1, _subtitle.Paragraphs[index + 1]);
SubtitleListview1.AutoScrollOffset.Offset(0, index * 16);
SubtitleListview1.EnsureVisible(Math.Min(SubtitleListview1.Items.Count - 1, index + 5));
SubtitleListview1.SelectIndexAndEnsureVisible(index + 1, true);
}
_makeHistory = true;
}
}
private void buttonAdjustSecBack_Click(object sender, EventArgs e)
private void ButtonAdjustSecBackClick(object sender, EventArgs e)
{
GoBackSeconds((double)numericUpDownSecAdjust1.Value);
}
private void buttonAdjustSecForward_Click(object sender, EventArgs e)
private void ButtonAdjustSecForwardClick(object sender, EventArgs e)
{
GoBackSeconds(-(double)numericUpDownSecAdjust1.Value);
}
@ -10132,6 +10145,8 @@ namespace Nikse.SubtitleEdit.Forms
_mainAdjustSetEndAndGotoNext = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustSetEndAndGotoNext);
_mainAdjustInsertViaEndAutoStartAndGoToNext = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustViaEndAutoStartAndGoToNext);
_mainAdjustSetStartAutoDurationAndGoToNext = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustSetStartAutoDurationAndGoToNext);
_mainAdjustSetEndNextStartAndGoToNext = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustSetEndNextStartAndGoToNext);
_mainAdjustStartDownEndUpAndGoToNext = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustStartDownEndUpAndGoToNext);
_mainAdjustSetStart = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustSetStart);
_mainAdjustSetStartOnly = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustSetStartOnly);
_mainAdjustSetEnd = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainAdjustSetEnd);
@ -12176,6 +12191,42 @@ namespace Nikse.SubtitleEdit.Forms
audioVisualizer.Invalidate();
}
public void SetCurrentEndNextStartAndGoToNext(int index)
{
Paragraph p = _subtitle.GetParagraphOrDefault(index);
Paragraph next = _subtitle.GetParagraphOrDefault(index + 1);
if (p == null)
return;
if (mediaPlayer.VideoPlayer == null || string.IsNullOrEmpty(_videoFileName))
{
MessageBox.Show(Configuration.Settings.Language.General.NoVideoLoaded);
return;
}
MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.VideoControls.BeforeChangingTimeInWaveFormX, "#" + p.Number + " " + p.Text));
double videoPosition = mediaPlayer.CurrentPosition;
p.EndTime = new TimeCode(TimeSpan.FromSeconds(videoPosition));
if (p.Duration.TotalSeconds < 0 || p.Duration.TotalSeconds > 10)
p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + Utilities.GetDisplayMillisecondsFromText(p.Text);
SubtitleListview1.SetStartTime(index, p);
SubtitleListview1.SetDuration(index, p);
numericUpDownDuration.Value = (decimal)(_subtitle.Paragraphs[index].Duration.TotalSeconds + 0.001);
if (next != null)
{
var oldDuration = next.Duration.TotalMilliseconds;
next.StartTime.TotalMilliseconds = p.EndTime.TotalMilliseconds + 1;
next.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds + oldDuration;
SubtitleListview1.SelectIndexAndEnsureVisible(index + 1);
}
audioVisualizer.Invalidate();
}
private void EditSelectAllToolStripMenuItemClick(object sender, EventArgs e)
{
for (int i = 0; i < SubtitleListview1.Items.Count; i++)
@ -12797,9 +12848,21 @@ namespace Nikse.SubtitleEdit.Forms
{
var p = _subtitle.Paragraphs[_subtitleListViewIndex];
if (p.ToString() == _mainCreateStartDownEndUpParagraph.ToString())
buttonSetEnd_Click(null, null);
ButtonSetEndClick(null, null);
_mainCreateStartDownEndUpParagraph = null;
}
else if (_mainAdjustStartDownEndUpAndGoToNextParagraph != null)
{
var p = _subtitle.Paragraphs[_subtitleListViewIndex];
if (p.ToString() == _mainAdjustStartDownEndUpAndGoToNextParagraph.ToString())
{
double videoPositionInSeconds = mediaPlayer.CurrentPosition;
if (p.StartTime.TotalSeconds + 0.1 < videoPositionInSeconds)
ButtonSetEndClick(null, null);
SubtitleListview1.SelectIndexAndEnsureVisible(_subtitleListViewIndex+1);
}
_mainAdjustStartDownEndUpAndGoToNextParagraph = null;
}
}
private void ToolStripMenuItemSurroundWithMusicSymbolsClick(object sender, EventArgs e)

View File

@ -517,6 +517,10 @@ namespace Nikse.SubtitleEdit.Forms
adjustNode.Nodes.Add(Configuration.Settings.Language.Settings.AdjustViaEndAutoStartAndGoToNext + GetShortcutText(Configuration.Settings.Shortcuts.MainAdjustViaEndAutoStartAndGoToNext));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.AdjustSetStartAutoDurationAndGoToNext)) // TODO: Remove in SE 3.3
adjustNode.Nodes.Add(Configuration.Settings.Language.Settings.AdjustSetStartAutoDurationAndGoToNext + GetShortcutText(Configuration.Settings.Shortcuts.MainAdjustSetStartAutoDurationAndGoToNext));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.AdjustSetEndNextStartAndGoToNext)) // TODO: Remove in SE 3.3
adjustNode.Nodes.Add(Configuration.Settings.Language.Settings.AdjustSetEndNextStartAndGoToNext + GetShortcutText(Configuration.Settings.Shortcuts.MainAdjustSetEndNextStartAndGoToNext));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.AdjustStartDownEndUpAndGoToNext)) // TODO: Remove in SE 3.3
adjustNode.Nodes.Add(Configuration.Settings.Language.Settings.AdjustStartDownEndUpAndGoToNext + GetShortcutText(Configuration.Settings.Shortcuts.MainAdjustStartDownEndUpAndGoToNext));
adjustNode.Nodes.Add(Configuration.Settings.Language.Main.VideoControls.SetStartTime + GetShortcutText(Configuration.Settings.Shortcuts.MainAdjustSetStart));
if (!string.IsNullOrEmpty(Configuration.Settings.Language.Settings.AdjustSetStartTimeOnly)) // TODO: Remove in SE 3.3
adjustNode.Nodes.Add(Configuration.Settings.Language.Settings.AdjustSetStartTimeOnly + GetShortcutText(Configuration.Settings.Shortcuts.MainAdjustSetStartOnly));
@ -1038,6 +1042,10 @@ namespace Nikse.SubtitleEdit.Forms
Configuration.Settings.Shortcuts.MainAdjustSetEndAndGotoNext = GetShortcut(node.Text);
else if (Configuration.Settings.Language.Settings.AdjustSetStartAutoDurationAndGoToNext != null && text == Configuration.Settings.Language.Settings.AdjustSetStartAutoDurationAndGoToNext.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainAdjustSetStartAutoDurationAndGoToNext = GetShortcut(node.Text);
else if (Configuration.Settings.Language.Settings.AdjustSetEndNextStartAndGoToNext != null && text == Configuration.Settings.Language.Settings.AdjustSetEndNextStartAndGoToNext.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainAdjustSetEndNextStartAndGoToNext = GetShortcut(node.Text);
else if (Configuration.Settings.Language.Settings.AdjustStartDownEndUpAndGoToNext != null && text == Configuration.Settings.Language.Settings.AdjustStartDownEndUpAndGoToNext.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainAdjustStartDownEndUpAndGoToNext = GetShortcut(node.Text);
else if (text == Configuration.Settings.Language.Main.VideoControls.SetStartTime.Replace("&", string.Empty))
Configuration.Settings.Shortcuts.MainAdjustSetStart = GetShortcut(node.Text);
else if (Configuration.Settings.Language.Settings.AdjustSetStartTimeOnly != null && text == Configuration.Settings.Language.Settings.AdjustSetStartTimeOnly.Replace("&", string.Empty))

View File

@ -1277,6 +1277,8 @@ can edit in same subtitle file (collaboration)",
ToggleDockUndockOfVideoControls = "Toggle dock/undock of video controls",
AdjustViaEndAutoStartAndGoToNext = "Adjust via end position and go to next",
AdjustSetStartAutoDurationAndGoToNext = "Set start, auto duration and go to next",
AdjustSetEndNextStartAndGoToNext = "Set end, next start and go to next",
AdjustStartDownEndUpAndGoToNext = "Key down=start start, Key up=set end and go to next",
AdjustSelected100MsForward = "Move selected lines 100 ms forward",
AdjustSelected100MsBack = "Move selected lines 100 ms back",
AdjustSetStartTimeOnly = "Set start time, keep end time",

View File

@ -1206,6 +1206,8 @@
public string ToggleDockUndockOfVideoControls { get; set; }
public string AdjustViaEndAutoStartAndGoToNext { get; set; }
public string AdjustSetStartAutoDurationAndGoToNext { get; set; }
public string AdjustSetEndNextStartAndGoToNext { get; set; }
public string AdjustStartDownEndUpAndGoToNext { get; set; }
public string AdjustSelected100MsForward { get; set; }
public string AdjustSelected100MsBack { get; set; }
public string AdjustSetStartTimeOnly { get; set; }

View File

@ -502,6 +502,8 @@ namespace Nikse.SubtitleEdit.Logic
public string MainAdjustSetEndAndGotoNext { get; set; }
public string MainAdjustViaEndAutoStartAndGoToNext { get; set; }
public string MainAdjustSetStartAutoDurationAndGoToNext { get; set; }
public string MainAdjustSetEndNextStartAndGoToNext { get; set; }
public string MainAdjustStartDownEndUpAndGoToNext { get; set; }
public string MainAdjustSetStart { get; set; }
public string MainAdjustSetStartOnly { get; set; }
public string MainAdjustSetEnd { get; set; }
@ -553,6 +555,8 @@ namespace Nikse.SubtitleEdit.Logic
MainAdjustSetEndAndGotoNext = string.Empty;
MainAdjustViaEndAutoStartAndGoToNext = string.Empty;
MainAdjustSetStartAutoDurationAndGoToNext = string.Empty;
MainAdjustSetEndNextStartAndGoToNext = string.Empty;
MainAdjustStartDownEndUpAndGoToNext = string.Empty;
MainAdjustSetStart = string.Empty;
MainAdjustSetStartOnly = string.Empty;
MainAdjustSetEnd = string.Empty;
@ -1421,6 +1425,12 @@ namespace Nikse.SubtitleEdit.Logic
subNode = node.SelectSingleNode("MainAdjustSetStartAutoDurationAndGoToNext");
if (subNode != null)
settings.Shortcuts.MainAdjustSetStartAutoDurationAndGoToNext = subNode.InnerText;
subNode = node.SelectSingleNode("MainAdjustSetEndNextStartAndGoToNext");
if (subNode != null)
settings.Shortcuts.MainAdjustSetEndNextStartAndGoToNext = subNode.InnerText;
subNode = node.SelectSingleNode("MainAdjustStartDownEndUpAndGoToNext");
if (subNode != null)
settings.Shortcuts.MainAdjustStartDownEndUpAndGoToNext = subNode.InnerText;
subNode = node.SelectSingleNode("MainAdjustSetStart");
if (subNode != null)
settings.Shortcuts.MainAdjustSetStart = subNode.InnerText;
@ -1651,7 +1661,7 @@ namespace Nikse.SubtitleEdit.Logic
textWriter.WriteElementString("MergeLinesShorterThan", settings.Tools.MergeLinesShorterThan.ToString());
textWriter.WriteElementString("MusicSymbol", settings.Tools.MusicSymbol);
textWriter.WriteElementString("MusicSymbolToReplace", settings.Tools.MusicSymbolToReplace);
textWriter.WriteElementString("MusicSymbolToReplace", settings.Tools.UnicodeSymbolsToInsert);
textWriter.WriteElementString("UnicodeSymbolsToInsert", settings.Tools.UnicodeSymbolsToInsert);
textWriter.WriteElementString("SpellCheckAutoChangeNames", settings.Tools.SpellCheckAutoChangeNames.ToString());
textWriter.WriteElementString("SpellCheckOneLetterWords", settings.Tools.SpellCheckOneLetterWords.ToString());
textWriter.WriteElementString("OcrFixUseHardcodedRules", settings.Tools.OcrFixUseHardcodedRules.ToString());
@ -1810,6 +1820,8 @@ namespace Nikse.SubtitleEdit.Logic
textWriter.WriteElementString("MainAdjustSetEndAndGotoNext", settings.Shortcuts.MainAdjustSetEndAndGotoNext);
textWriter.WriteElementString("MainAdjustViaEndAutoStartAndGoToNext", settings.Shortcuts.MainAdjustViaEndAutoStartAndGoToNext);
textWriter.WriteElementString("MainAdjustSetStartAutoDurationAndGoToNext", settings.Shortcuts.MainAdjustSetStartAutoDurationAndGoToNext);
textWriter.WriteElementString("MainAdjustSetEndNextStartAndGoToNext", settings.Shortcuts.MainAdjustSetEndNextStartAndGoToNext);
textWriter.WriteElementString("MainAdjustStartDownEndUpAndGoToNext", settings.Shortcuts.MainAdjustStartDownEndUpAndGoToNext);
textWriter.WriteElementString("MainAdjustSetStart", settings.Shortcuts.MainAdjustSetStart);
textWriter.WriteElementString("MainAdjustSetStartOnly", settings.Shortcuts.MainAdjustSetStartOnly);
textWriter.WriteElementString("MainAdjustSetEnd", settings.Shortcuts.MainAdjustSetEnd);