Arrow up/down now navigates to prev/next sub when playing video fullscreen

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@925 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2012-01-12 07:18:20 +00:00
parent ebedc3ddda
commit 788a987141
2 changed files with 70 additions and 11 deletions

View File

@ -197,7 +197,7 @@ namespace Nikse.SubtitleEdit.Forms
public Main() public Main()
{ {
//try try
{ {
InitializeComponent(); InitializeComponent();
@ -351,11 +351,11 @@ namespace Nikse.SubtitleEdit.Forms
FixLargeFonts(); FixLargeFonts();
} }
//catch (Exception exception) catch (Exception exception)
//{ {
// Cursor = Cursors.Default; Cursor = Cursors.Default;
// MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace); MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace);
//} }
} }
private void BatchConvert(string[] args) // E.g.: /convert *.txt SubRip private void BatchConvert(string[] args) // E.g.: /convert *.txt SubRip
@ -364,8 +364,6 @@ namespace Nikse.SubtitleEdit.Forms
if (!Utilities.IsRunningOnMac() && !Utilities.IsRunningOnLinux()) if (!Utilities.IsRunningOnMac() && !Utilities.IsRunningOnLinux())
AttachConsole(ATTACH_PARENT_PROCESS); AttachConsole(ATTACH_PARENT_PROCESS);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(); Console.WriteLine();
Console.WriteLine(); Console.WriteLine();
Console.WriteLine(Title + " - Batch converter"); Console.WriteLine(Title + " - Batch converter");
@ -373,7 +371,6 @@ namespace Nikse.SubtitleEdit.Forms
Console.WriteLine("- Syntax: SubtitleEdit /convert <pattern> <name-of-format-without-spaces> [/offset:hh:mm:ss:msec] [/encoding:<encoding name>]"); Console.WriteLine("- Syntax: SubtitleEdit /convert <pattern> <name-of-format-without-spaces> [/offset:hh:mm:ss:msec] [/encoding:<encoding name>]");
Console.WriteLine(" example: SubtitleEdit /convert *.srt sami"); Console.WriteLine(" example: SubtitleEdit /convert *.srt sami");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine();
string pattern = args[2]; string pattern = args[2];
string toFormat = args[3]; string toFormat = args[3];
@ -391,9 +388,12 @@ namespace Nikse.SubtitleEdit.Forms
Encoding targetEncoding = Encoding.UTF8; Encoding targetEncoding = Encoding.UTF8;
try try
{ {
targetEncodingName = targetEncodingName.Substring(10);
if (!string.IsNullOrEmpty(targetEncodingName)) if (!string.IsNullOrEmpty(targetEncodingName))
targetEncoding = Encoding.GetEncoding(targetEncodingName); {
targetEncodingName = targetEncodingName.Substring(10);
if (!string.IsNullOrEmpty(targetEncodingName))
targetEncoding = Encoding.GetEncoding(targetEncodingName);
}
} }
catch (Exception exception) catch (Exception exception)
{ {
@ -12337,5 +12337,49 @@ namespace Nikse.SubtitleEdit.Forms
//tc.DrawMode = TabDrawMode.Normal; //tc.DrawMode = TabDrawMode.Normal;
} }
public void GotoNextSubPosFromvideoPos()
{
if (mediaPlayer.VideoPlayer != null && _subtitle != null)
{
double ms = mediaPlayer.VideoPlayer.CurrentPosition * 1000.0;
foreach (Paragraph p in _subtitle.Paragraphs)
{
if (p.EndTime.TotalMilliseconds > ms && p.StartTime.TotalMilliseconds < ms)
{
// currrent sub
}
else if (p.Duration.TotalSeconds < 10 && p.StartTime.TotalMilliseconds > ms)
{
mediaPlayer.VideoPlayer.CurrentPosition = p.StartTime.TotalSeconds;
return;
}
}
}
}
public void GotoPrevSubPosFromvideoPos()
{
if (mediaPlayer.VideoPlayer != null && _subtitle != null)
{
double ms = mediaPlayer.VideoPlayer.CurrentPosition * 1000.0;
int i = _subtitle.Paragraphs.Count-1;
while (i>0)
{
Paragraph p = _subtitle.Paragraphs[i];
if (p.EndTime.TotalMilliseconds > ms && p.StartTime.TotalMilliseconds < ms)
{
// currrent sub
}
else if (p.Duration.TotalSeconds < 10 && p.StartTime.TotalMilliseconds < ms)
{
mediaPlayer.VideoPlayer.CurrentPosition = p.StartTime.TotalSeconds;
return;
}
i--;
}
}
}
} }
} }

View File

@ -99,6 +99,21 @@ namespace Nikse.SubtitleEdit.Forms
e.SuppressKeyPress = true; e.SuppressKeyPress = true;
} }
} }
else if (e.KeyCode == Keys.Up && e.Modifiers == Keys.Alt && WindowState == FormWindowState.Maximized)
{
_mainForm.GotoPrevSubPosFromvideoPos();
e.Handled = true;
}
else if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.Down && WindowState == FormWindowState.Maximized)
{
_mainForm.GotoNextSubPosFromvideoPos();
e.Handled = true;
}
else if (_redockKeys == e.KeyData) else if (_redockKeys == e.KeyData)
{ {
_mainForm.redockVideoControlsToolStripMenuItem_Click(null, null); _mainForm.redockVideoControlsToolStripMenuItem_Click(null, null);