From d082d7454a87161540ce3da4d96bad10ec53777c Mon Sep 17 00:00:00 2001 From: niksedk Date: Fri, 6 May 2011 18:12:48 +0000 Subject: [PATCH] Now remembers undocked controls pos/size git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@423 99eadd0c-20b8-1223-b5c4-2a2b2df33de2 --- src/Forms/Main.cs | 44 +++++++++++++++++++++++++++++- src/Forms/Main.resx | 2 +- src/Forms/VideoControlsUndocked.cs | 5 ++++ src/Forms/VideoPlayerUnDocked.cs | 5 ++++ src/Forms/WaveFormUnDocked.cs | 5 ++++ src/Logic/PositionAndSize.cs | 2 +- src/Logic/PositionsAndSizes.cs | 5 ++++ src/Logic/Settings.cs | 23 +++++++++++++++- 8 files changed, 87 insertions(+), 4 deletions(-) diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index d00c11879..e1e7235cf 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -419,6 +419,10 @@ namespace Nikse.SubtitleEdit.Forms if (File.Exists(outputFileName)) outputFileName = Path.GetFileNameWithoutExtension(fileName) + "_" + Guid.NewGuid().ToString() + sf.Extension; Console.Write(string.Format("{0}: {1} -> {2}...", count, Path.GetFileName(fileName), outputFileName)); + if (sf.IsFrameBased && !sub.WasLoadedWithFrameNumbers) + sub.CalculateFrameNumbersFromTimeCodesNoCheck(Configuration.Settings.General.DefaultFrameRate); + else if (sf.IsTimeBased && sub.WasLoadedWithFrameNumbers) + sub.CalculateTimeCodesFromFrameNumbers(Configuration.Settings.General.DefaultFrameRate); System.IO.File.WriteAllText(outputFileName, sub.ToText(sf)); Console.WriteLine(" done."); } @@ -4657,6 +4661,14 @@ namespace Nikse.SubtitleEdit.Forms Configuration.Settings.General.SyncListViewWithVideoWhilePlaying = checkBoxSyncListViewWithVideoWhilePlaying.Checked; if (!string.IsNullOrEmpty(_fileName)) Configuration.Settings.RecentFiles.Add(_fileName, FirstVisibleIndex, FirstSelectedIndex, _videoFileName, _subtitleAlternateFileName); + + if (_videoPlayerUnDocked != null && !_videoPlayerUnDocked.IsDisposed) + Configuration.Settings.General.UndockedVideoPosition = _videoPlayerUnDocked.Left.ToString() + ";" + _videoPlayerUnDocked.Top.ToString() + ";" + _videoPlayerUnDocked.Width + ";" + _videoPlayerUnDocked.Height; + if (_waveFormUnDocked != null && !_waveFormUnDocked.IsDisposed) + Configuration.Settings.General.UndockedWaveformPosition = _waveFormUnDocked.Left.ToString() + ";" + _waveFormUnDocked.Top.ToString() + ";" + _waveFormUnDocked.Width + ";" + _waveFormUnDocked.Height; + if (_videoControlsUnDocked != null && !_videoControlsUnDocked.IsDisposed) + Configuration.Settings.General.UndockedVideoControlsPosition = _videoControlsUnDocked.Left.ToString() + ";" + _videoControlsUnDocked.Top.ToString() + ";" + _videoControlsUnDocked.Width + ";" + _videoControlsUnDocked.Height; + Configuration.Settings.Save(); if (mediaPlayer.VideoPlayer != null) @@ -7951,11 +7963,38 @@ namespace Nikse.SubtitleEdit.Forms else SubtitleListview1.Focus(); - SetShortcuts(); + if (Configuration.Settings.General.Undocked) + { + SetPositionFromXYString(Configuration.Settings.General.UndockedVideoPosition, "VideoPlayerUnDocked"); + SetPositionFromXYString(Configuration.Settings.General.UndockedWaveformPosition, "WaveFormUnDocked"); + SetPositionFromXYString(Configuration.Settings.General.UndockedVideoControlsPosition, "VideoControlsUndocked"); + undockVideoControlsToolStripMenuItem_Click(null, null); + } + SetShortcuts(); LoadPlugins(); } + private void SetPositionFromXYString(string positionAndSize, string name) + { + string[] parts = positionAndSize.Split(';'); + if (parts.Length == 4) + { + try + { + int x = int.Parse(parts[0]); + int y = int.Parse(parts[1]); + int w = int.Parse(parts[2]); + int h = int.Parse(parts[3]); + _formPositionsAndSizes.AddPositionAndSize(new PositionAndSize() { Left = x, Top = y, Size = new Size(w, h), Name = name }); + } + catch (Exception exception) + { + System.Diagnostics.Debug.WriteLine(exception.Message); + } + } + } + private void SetShortcuts() { newToolStripMenuItem.ShortcutKeys = GetKeys(Configuration.Settings.Shortcuts.MainFileNew); @@ -9324,6 +9363,8 @@ namespace Nikse.SubtitleEdit.Forms private void undockVideoControlsToolStripMenuItem_Click(object sender, EventArgs e) { + Configuration.Settings.General.Undocked = true; + UnDockVideoPlayer(); if (toolStripButtonToggleVideo.Checked) _videoPlayerUnDocked.Show(this); @@ -9345,6 +9386,7 @@ namespace Nikse.SubtitleEdit.Forms private void redockVideoControlsToolStripMenuItem_Click(object sender, EventArgs e) { + Configuration.Settings.General.Undocked = false; if (_videoControlsUnDocked != null && !_videoControlsUnDocked.IsDisposed) { diff --git a/src/Forms/Main.resx b/src/Forms/Main.resx index f1cd8c66d..c3950c8df 100644 --- a/src/Forms/Main.resx +++ b/src/Forms/Main.resx @@ -684,7 +684,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 - CAAAAk1TRnQBSQFMAgEBAgEAAeABBAHgAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAegBBAHoAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/src/Forms/VideoControlsUndocked.cs b/src/Forms/VideoControlsUndocked.cs index 49d1ff138..5bb4e44bb 100644 --- a/src/Forms/VideoControlsUndocked.cs +++ b/src/Forms/VideoControlsUndocked.cs @@ -30,6 +30,11 @@ namespace Nikse.SubtitleEdit.Forms Text = title; } + public VideoControlsUndocked() + { + // TODO: Complete member initialization + } + private void VideoControlsUndocked_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing && panelContainer.Controls.Count > 0) diff --git a/src/Forms/VideoPlayerUnDocked.cs b/src/Forms/VideoPlayerUnDocked.cs index d6e86939b..cc09ef4ab 100644 --- a/src/Forms/VideoPlayerUnDocked.cs +++ b/src/Forms/VideoPlayerUnDocked.cs @@ -26,6 +26,11 @@ namespace Nikse.SubtitleEdit.Forms Text = title; } + public VideoPlayerUnDocked() + { + // TODO: Complete member initialization + } + private void VideoPlayerUnDocked_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing && panelContainer.Controls.Count > 0) diff --git a/src/Forms/WaveFormUnDocked.cs b/src/Forms/WaveFormUnDocked.cs index e94e5d819..b28e582ca 100644 --- a/src/Forms/WaveFormUnDocked.cs +++ b/src/Forms/WaveFormUnDocked.cs @@ -30,6 +30,11 @@ namespace Nikse.SubtitleEdit.Forms Text = title; } + public WaveFormUnDocked() + { + // TODO: Complete member initialization + } + private void WaveFormUnDocked_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing && panelContainer.Controls.Count > 0) diff --git a/src/Logic/PositionAndSize.cs b/src/Logic/PositionAndSize.cs index e5c6376e6..e03b396b3 100644 --- a/src/Logic/PositionAndSize.cs +++ b/src/Logic/PositionAndSize.cs @@ -5,7 +5,7 @@ using System.Drawing; namespace Nikse.SubtitleEdit.Logic { - class PositionAndSize + public class PositionAndSize { public string Name { get; set; } public int Left { get; set; } diff --git a/src/Logic/PositionsAndSizes.cs b/src/Logic/PositionsAndSizes.cs index 864403c72..5a57d4181 100644 --- a/src/Logic/PositionsAndSizes.cs +++ b/src/Logic/PositionsAndSizes.cs @@ -7,6 +7,11 @@ namespace Nikse.SubtitleEdit.Logic { List _positionsAndSizes = new List(); + public void AddPositionAndSize(PositionAndSize pAndS) + { + _positionsAndSizes.Add(pAndS); + } + public bool SetPositionAndSize(Form form) { if (form == null) diff --git a/src/Logic/Settings.cs b/src/Logic/Settings.cs index 9150ed5a7..4ea92f713 100644 --- a/src/Logic/Settings.cs +++ b/src/Logic/Settings.cs @@ -249,6 +249,10 @@ namespace Nikse.SubtitleEdit.Logic public int AutoBackupSeconds { get; set; } public string SpellChecker { get; set; } public bool AllowEditOfOriginalSubtitle { get; set; } + public bool Undocked { get; set; } + public string UndockedVideoPosition { get; set; } + public string UndockedWaveformPosition { get; set; } + public string UndockedVideoControlsPosition { get; set; } public GeneralSettings() { @@ -300,6 +304,7 @@ namespace Nikse.SubtitleEdit.Logic AutoBackupSeconds = 0; SpellChecker = "hunspell"; AllowEditOfOriginalSubtitle = false; + Undocked = false; } } @@ -715,7 +720,19 @@ namespace Nikse.SubtitleEdit.Logic subNode = node.SelectSingleNode("AllowEditOfOriginalSubtitle"); if (subNode != null) settings.General.AllowEditOfOriginalSubtitle = Convert.ToBoolean(subNode.InnerText); - + subNode = node.SelectSingleNode("Undocked"); + if (subNode != null) + settings.General.Undocked = Convert.ToBoolean(subNode.InnerText); + subNode = node.SelectSingleNode("UndockedVideoPosition"); + if (subNode != null) + settings.General.UndockedVideoPosition = subNode.InnerText; + subNode = node.SelectSingleNode("UndockedWaveformPosition"); + if (subNode != null) + settings.General.UndockedWaveformPosition = subNode.InnerText; + subNode = node.SelectSingleNode("UndockedVideoControlsPosition"); + if (subNode != null) + settings.General.UndockedVideoControlsPosition = subNode.InnerText; + settings.Tools = new Nikse.SubtitleEdit.Logic.ToolsSettings(); node = doc.DocumentElement.SelectSingleNode("Tools"); subNode = node.SelectSingleNode("StartSceneIndex"); @@ -1094,6 +1111,10 @@ namespace Nikse.SubtitleEdit.Logic textWriter.WriteElementString("AutoBackupSeconds", settings.General.AutoBackupSeconds.ToString()); textWriter.WriteElementString("SpellChecker", settings.General.SpellChecker); textWriter.WriteElementString("AllowEditOfOriginalSubtitle", settings.General.AllowEditOfOriginalSubtitle.ToString()); + textWriter.WriteElementString("Undocked", settings.General.Undocked.ToString()); + textWriter.WriteElementString("UndockedVideoPosition", settings.General.UndockedVideoPosition); + textWriter.WriteElementString("UndockedWaveformPosition", settings.General.UndockedWaveformPosition); + textWriter.WriteElementString("UndockedVideoControlsPosition", settings.General.UndockedVideoControlsPosition); textWriter.WriteEndElement(); textWriter.WriteStartElement("Tools", "");