From 788a987141d556ec7dfa37cbff0be6c0a44d58da Mon Sep 17 00:00:00 2001 From: niksedk Date: Thu, 12 Jan 2012 07:18:20 +0000 Subject: [PATCH] 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 --- src/Forms/Main.cs | 66 ++++++++++++++++++++++++++------ src/Forms/VideoPlayerUnDocked.cs | 15 ++++++++ 2 files changed, 70 insertions(+), 11 deletions(-) diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index 7ba31fb88..1228253c0 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -197,7 +197,7 @@ namespace Nikse.SubtitleEdit.Forms public Main() { - //try + try { InitializeComponent(); @@ -351,11 +351,11 @@ namespace Nikse.SubtitleEdit.Forms FixLargeFonts(); } - //catch (Exception exception) - //{ - // Cursor = Cursors.Default; - // MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace); - //} + catch (Exception exception) + { + Cursor = Cursors.Default; + MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace); + } } private void BatchConvert(string[] args) // E.g.: /convert *.txt SubRip @@ -364,8 +364,6 @@ namespace Nikse.SubtitleEdit.Forms if (!Utilities.IsRunningOnMac() && !Utilities.IsRunningOnLinux()) AttachConsole(ATTACH_PARENT_PROCESS); - Console.WriteLine(); - Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(Title + " - Batch converter"); @@ -373,7 +371,6 @@ namespace Nikse.SubtitleEdit.Forms Console.WriteLine("- Syntax: SubtitleEdit /convert [/offset:hh:mm:ss:msec] [/encoding:]"); Console.WriteLine(" example: SubtitleEdit /convert *.srt sami"); Console.WriteLine(); - Console.WriteLine(); string pattern = args[2]; string toFormat = args[3]; @@ -391,9 +388,12 @@ namespace Nikse.SubtitleEdit.Forms Encoding targetEncoding = Encoding.UTF8; try { - targetEncodingName = targetEncodingName.Substring(10); if (!string.IsNullOrEmpty(targetEncodingName)) - targetEncoding = Encoding.GetEncoding(targetEncodingName); + { + targetEncodingName = targetEncodingName.Substring(10); + if (!string.IsNullOrEmpty(targetEncodingName)) + targetEncoding = Encoding.GetEncoding(targetEncodingName); + } } catch (Exception exception) { @@ -12337,5 +12337,49 @@ namespace Nikse.SubtitleEdit.Forms //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--; + } + } + } + + } } \ No newline at end of file diff --git a/src/Forms/VideoPlayerUnDocked.cs b/src/Forms/VideoPlayerUnDocked.cs index 3ec6d51a2..3f224cb76 100644 --- a/src/Forms/VideoPlayerUnDocked.cs +++ b/src/Forms/VideoPlayerUnDocked.cs @@ -99,6 +99,21 @@ namespace Nikse.SubtitleEdit.Forms 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) { _mainForm.redockVideoControlsToolStripMenuItem_Click(null, null);