OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmOptions.cs
index 5f5977a..c6519e1 100644 (file)
@@ -1,27 +1,36 @@
 /*  frmOptions.cs $\r
-       \r
-          This file is part of the HandBrake source code.\r
-          Homepage: <http://handbrake.fr>.\r
-          It may be used under the terms of the GNU General Public License. */\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Globalization;\r
-using System.Windows.Forms;\r
-using Handbrake.Functions;\r
+    This file is part of the HandBrake source code.\r
+    Homepage: <http://handbrake.fr>.\r
+    It may be used under the terms of the GNU General Public License. */\r
 \r
 namespace Handbrake\r
 {\r
+    using System;\r
+    using System.Collections.Generic;\r
+    using System.Diagnostics;\r
+    using System.Globalization;\r
+    using System.Windows.Forms;\r
+\r
+    using HandBrake.ApplicationServices;\r
+\r
+    using Handbrake.Functions;\r
+    using Handbrake.Model;\r
+    using Handbrake.Properties;\r
+\r
+    /// <summary>\r
+    /// The Options Window\r
+    /// </summary>\r
     public partial class frmOptions : Form\r
     {\r
         private frmMain mainWindow;\r
+        private bool optionsWindowLoading = true;\r
 \r
         public frmOptions(frmMain mw)\r
         {\r
             InitializeComponent();\r
             mainWindow = mw;\r
 \r
-            IDictionary<string, string> langList = Main.mapLanguages();\r
+            IDictionary<string, string> langList = Main.MapLanguages();\r
             foreach (string item in langList.Keys)\r
                 drop_preferredLang.Items.Add(item);\r
 \r
@@ -80,6 +89,12 @@ namespace Handbrake
             if (Properties.Settings.Default.useM4v)\r
                 check_m4v.CheckState = CheckState.Checked;\r
 \r
+            // Remove Underscores\r
+            check_removeUnderscores.Checked = Properties.Settings.Default.AutoNameRemoveUnderscore;\r
+\r
+            // Title case\r
+            check_TitleCase.Checked = Properties.Settings.Default.AutoNameTitleCase;\r
+\r
             // #############################\r
             // Picture Tab\r
             // #############################\r
@@ -93,30 +108,33 @@ namespace Handbrake
 \r
             drop_preferredLang.SelectedItem = Properties.Settings.Default.NativeLanguage;\r
 \r
-            if (Properties.Settings.Default.DubAudio)\r
-                radio_dub.Checked = true;\r
-            else\r
-                radio_foreignAndSubs.Checked = true;\r
+            switch (Settings.Default.DubMode)\r
+            {\r
+                case 1:\r
+                    radio_dub.Checked = true;\r
+                    break;\r
+                case 2:\r
+                    radio_foreignAndSubs.Checked = true;\r
+                    break;\r
+                case 3:\r
+                    radio_preferredAudioAndSubs.Checked = true;\r
+                    break;\r
+            }\r
 \r
+            check_AddCCTracks.Checked = Properties.Settings.Default.useClosedCaption;\r
 \r
             // #############################\r
             // CLI\r
             // #############################\r
 \r
-            // Enable Start CLI minimized\r
-            if (Properties.Settings.Default.cli_minimized)\r
-                check_cli_minimized.CheckState = CheckState.Checked;\r
-\r
-            // Number of processor cores\r
-            drp_processors.Text = Properties.Settings.Default.Processors;\r
-\r
             // Priority level for encodes\r
             drp_Priority.Text = Properties.Settings.Default.processPriority;\r
 \r
+            check_preventSleep.Checked = Properties.Settings.Default.preventSleep;\r
+\r
             // Log Verbosity Level\r
             cb_logVerboseLvl.SelectedIndex = Properties.Settings.Default.verboseLevel;\r
 \r
-\r
             // Save logs in the same directory as encoded files\r
             if (Properties.Settings.Default.saveLogWithVideo)\r
                 check_saveLogWithVideo.CheckState = CheckState.Checked;\r
@@ -128,6 +146,7 @@ namespace Handbrake
             // The saved log path\r
             text_logPath.Text = Properties.Settings.Default.saveLogPath;\r
 \r
+            check_clearOldLogs.Checked = Properties.Settings.Default.clearOldLogs;\r
 \r
             // #############################\r
             // Advanced\r
@@ -144,6 +163,7 @@ namespace Handbrake
             // Enable / Disable Query editor tab\r
             if (Properties.Settings.Default.QueryEditorTab)\r
                 check_queryEditorTab.CheckState = CheckState.Checked;\r
+            check_promptOnUnmatchingQueries.Enabled = check_queryEditorTab.Checked;\r
 \r
             // Prompt on inconsistant queries\r
             check_promptOnUnmatchingQueries.Checked = Properties.Settings.Default.PromptOnUnmatchingQueries;\r
@@ -152,9 +172,8 @@ namespace Handbrake
             if (Properties.Settings.Default.presetNotification)\r
                 check_disablePresetNotification.CheckState = CheckState.Checked;\r
 \r
-            // Experimental In-GUI encode status indicator.\r
-            if (Properties.Settings.Default.enocdeStatusInGui)\r
-                check_inGuiStatus.CheckState = CheckState.Checked;\r
+            // Show CLI Window\r
+            check_showCliForInGUIEncode.Checked = Properties.Settings.Default.showCliForInGuiEncodeStatus;\r
 \r
             // Set the preview count\r
             drop_previewScanCount.SelectedItem = Properties.Settings.Default.previewScanCount.ToString();\r
@@ -181,14 +200,11 @@ namespace Handbrake
             if (Properties.Settings.Default.noDvdNav)\r
                 check_dvdnav.CheckState = CheckState.Checked;\r
 \r
-            // #############################\r
-            // Debug\r
-            // #############################\r
-            if (Properties.Settings.Default.disableResCalc)\r
-                check_disableResCalc.Checked = true;\r
+            optionsWindowLoading = false;\r
         }\r
 \r
         #region General\r
+\r
         private void check_updateCheck_CheckedChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.updateStatus = check_updateCheck.Checked;\r
@@ -250,65 +266,97 @@ namespace Handbrake
         {\r
             if (text_an_path.Text == string.Empty)\r
             {\r
-                Properties.Settings.Default.autoNamePath = "";\r
+                Properties.Settings.Default.autoNamePath = string.Empty;\r
                 text_an_path.Text = "Click 'Browse' to set the default location";\r
             }\r
             else\r
                 Properties.Settings.Default.autoNamePath = text_an_path.Text;\r
+\r
+            if (text_an_path.Text == "{source}" && !optionsWindowLoading)\r
+            {\r
+                MessageBox.Show(\r
+                    "Be careful with this feature. Make sure you can write to the same folder as the source! \n\n If you are encoding from a DVD, do not use this feature as HandBrake will not be able to write to the DVD!",\r
+                    "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+            }\r
         }\r
 \r
         private void check_m4v_CheckedChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.useM4v = check_m4v.Checked;\r
         }\r
+\r
+        private void check_removeUnderscores_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            Properties.Settings.Default.AutoNameRemoveUnderscore = check_removeUnderscores.Checked;\r
+        }\r
+\r
+        private void check_TitleCase_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            Properties.Settings.Default.AutoNameTitleCase = check_TitleCase.Checked;\r
+        }\r
+\r
         #endregion\r
 \r
         #region Picture\r
+\r
         private void btn_vlcPath_Click(object sender, EventArgs e)\r
         {\r
             openFile_vlc.ShowDialog();\r
             if (openFile_vlc.FileName != string.Empty)\r
                 txt_vlcPath.Text = openFile_vlc.FileName;\r
         }\r
+\r
         private void txt_vlcPath_TextChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.VLC_Path = txt_vlcPath.Text;\r
         }\r
+\r
         #endregion\r
 \r
         #region Audio and Subtitles\r
+\r
         private void drop_preferredLang_SelectedIndexChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.NativeLanguage = drop_preferredLang.SelectedItem.ToString();\r
         }\r
+\r
         private void radio_dub_CheckedChanged(object sender, EventArgs e)\r
         {\r
             if (radio_dub.Checked)\r
-                Properties.Settings.Default.DubAudio = true;\r
+                Properties.Settings.Default.DubMode = 1;\r
         }\r
+\r
         private void radio_foreignAndSubs_CheckedChanged(object sender, EventArgs e)\r
         {\r
             if (radio_foreignAndSubs.Checked)\r
-                Properties.Settings.Default.DubAudio = false;\r
-        }       \r
-        #endregion\r
+                Properties.Settings.Default.DubMode = 2;\r
+        }\r
 \r
-        #region CLI\r
-        private void check_cli_minimized_CheckedChanged(object sender, EventArgs e)\r
+        private void radio_preferredAudioAndSubs_CheckedChanged(object sender, EventArgs e)\r
         {\r
-            Properties.Settings.Default.cli_minimized = check_cli_minimized.Checked;\r
+            if (radio_preferredAudioAndSubs.Checked)\r
+                Properties.Settings.Default.DubMode = 3;\r
         }\r
 \r
-        private void drp_processors_SelectedIndexChanged(object sender, EventArgs e)\r
+        private void check_AddCCTracks_CheckedChanged(object sender, EventArgs e)\r
         {\r
-            Properties.Settings.Default.Processors = drp_processors.Text;\r
+            Settings.Default.useClosedCaption = check_AddCCTracks.Checked;\r
         }\r
 \r
+        #endregion\r
+\r
+        #region CLI\r
+\r
         private void drp_Priority_SelectedIndexChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.processPriority = drp_Priority.Text;\r
         }\r
 \r
+        private void check_preventSleep_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            Properties.Settings.Default.preventSleep = check_preventSleep.Checked;\r
+        }\r
+\r
         private void cb_logVerboseLvl_SelectedIndexChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.verboseLevel = cb_logVerboseLvl.SelectedIndex;\r
@@ -341,7 +389,7 @@ namespace Handbrake
         {\r
             string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";\r
             string windir = Environment.GetEnvironmentVariable("WINDIR");\r
-            System.Diagnostics.Process prc = new System.Diagnostics.Process();\r
+            Process prc = new Process();\r
             prc.StartInfo.FileName = windir + @"\explorer.exe";\r
             prc.StartInfo.Arguments = logDir;\r
             prc.Start();\r
@@ -349,14 +397,21 @@ namespace Handbrake
 \r
         private void btn_clearLogs_Click(object sender, EventArgs e)\r
         {\r
-            DialogResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
+            DialogResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs",\r
+                                                  MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
             if (result == DialogResult.Yes)\r
             {\r
-                Main.clearLogs();\r
+                Main.ClearLogs();\r
                 MessageBox.Show(this, "HandBrake's Log file directory has been cleared!", "Notice", MessageBoxButtons.OK,\r
                                 MessageBoxIcon.Information);\r
             }\r
         }\r
+\r
+        private void check_clearOldLogs_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            Properties.Settings.Default.clearOldLogs = check_clearOldLogs.Checked;\r
+        }\r
+\r
         #endregion\r
 \r
         #region Advanced\r
@@ -388,12 +443,11 @@ namespace Handbrake
             Properties.Settings.Default.presetNotification = check_disablePresetNotification.Checked;\r
         }\r
 \r
-        private void check_inGuiStatus_CheckedChanged(object sender, EventArgs e)\r
+        private void check_showCliForInGUIEncode_CheckedChanged(object sender, EventArgs e)\r
         {\r
-            Properties.Settings.Default.enocdeStatusInGui = check_inGuiStatus.Checked;\r
+            Properties.Settings.Default.showCliForInGuiEncodeStatus = check_showCliForInGUIEncode.Checked;\r
         }\r
 \r
-        \r
         private void drop_previewScanCount_SelectedIndexChanged(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.previewScanCount = int.Parse(drop_previewScanCount.SelectedItem.ToString());\r
@@ -423,19 +477,37 @@ namespace Handbrake
         {\r
             Properties.Settings.Default.noDvdNav = check_dvdnav.Checked;\r
         }\r
-        #endregion\r
 \r
-        #region Debug\r
-        private void check_disableResCalc_CheckedChanged(object sender, EventArgs e)\r
-        {\r
-            Properties.Settings.Default.disableResCalc = check_disableResCalc.Checked;\r
-        }\r
         #endregion\r
 \r
         private void btn_close_Click(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.Save(); // Small hack for Vista. Seems to work fine on XP without this\r
+            UpdateApplicationServicesSettings();\r
+\r
             this.Close();\r
         }\r
+\r
+        /// <summary>\r
+        /// Initialize App Services\r
+        /// </summary>\r
+        private static void UpdateApplicationServicesSettings()\r
+        {\r
+            string versionId = String.Format(\r
+                "Windows GUI {1} {0}", Settings.Default.hb_build, Settings.Default.hb_version);\r
+            Init.SetupSettings(\r
+                versionId,\r
+                Program.InstanceId,\r
+                Settings.Default.CompletionOption,\r
+                Settings.Default.noDvdNav,\r
+                Settings.Default.growlEncode,\r
+                Settings.Default.growlQueue,\r
+                Settings.Default.processPriority,\r
+                Settings.Default.saveLogPath,\r
+                Settings.Default.saveLogToSpecifiedPath,\r
+                Settings.Default.saveLogWithVideo,\r
+                Settings.Default.showCliForInGuiEncodeStatus,\r
+                Settings.Default.preventSleep);\r
+        }\r
     }\r
 }
\ No newline at end of file