OSDN Git Service

LinGui: enable libdvdnav by default
[handbrake-jp/handbrake-jp-git.git] / win / C# / Controls / Subtitles.cs
index c4068fa..14e7bab 100644 (file)
@@ -2,14 +2,12 @@
 using System.Collections.Generic;\r
 using System.Windows.Forms;\r
 using Handbrake.Functions;\r
-using System.IO;\r
 \r
 namespace Handbrake.Controls\r
 {\r
     public partial class Subtitles : UserControl\r
     {\r
-\r
-        IDictionary<string, string> LangMap = new Dictionary<string, string>();\r
+        readonly IDictionary<string, string> LangMap = new Dictionary<string, string>();\r
 \r
         public Subtitles()\r
         {\r
@@ -23,12 +21,38 @@ namespace Handbrake.Controls
             srt_lang.SelectedIndex = 40;\r
         }\r
 \r
-        private int fileContainer;\r
+        private int FileContainer;\r
+\r
+        // Public Functions\r
+        public void Clear()\r
+        {\r
+            lv_subList.Items.Clear();\r
+        }\r
+        public void setSubtitleTrackAuto()\r
+        {\r
+            // Handle Native Language and "Dub Foreign language audio" and "Use Foreign language audio and Subtitles" Options\r
+            if (Properties.Settings.Default.NativeLanguage != "Any")\r
+            {\r
+                if (!Properties.Settings.Default.DubAudio) // We need to add a subtitle track if this is false.\r
+                {\r
+                    int i = 0;\r
+                    foreach (object item in drp_subtitleTracks.Items)\r
+                    {\r
+                        if (item.ToString().Contains(Properties.Settings.Default.NativeLanguage))\r
+                            drp_subtitleTracks.SelectedIndex = i;\r
+\r
+                        i++;\r
+                    }\r
+\r
+                    btn_addSubTrack_Click(this, new EventArgs());\r
+                }\r
+            }\r
+        }\r
         public void setContainer(int value)\r
         {\r
-            fileContainer = value;\r
+            FileContainer = value;\r
             Boolean trigger = false;\r
-            if (fileContainer != 1)\r
+            if (FileContainer != 1)\r
                 foreach (ListViewItem item in lv_subList.Items)\r
                 {\r
                     if (item.SubItems[1].Text.Contains("Bitmap"))\r
@@ -39,6 +63,18 @@ namespace Handbrake.Controls
                     }\r
                 }\r
         }\r
+        public Boolean RequiresM4V()\r
+        {\r
+            foreach (ListViewItem item in lv_subList.Items)\r
+            {\r
+                if (item.SubItems.Count != 5)\r
+                    return true;\r
+\r
+                if (item.SubItems[1].Text.Contains("(Text)"))\r
+                    return true;\r
+            }\r
+            return false;\r
+        }\r
 \r
         // Controls\r
         private void btn_addSubTrack_Click(object sender, EventArgs e)\r
@@ -66,7 +102,7 @@ namespace Handbrake.Controls
             }\r
 \r
             Boolean addTrack = true;\r
-            if (fileContainer == 0)\r
+            if (FileContainer == 0)\r
             {\r
                 burnedVal = "Yes";  // MP4 must have bitmap subs burned in.\r
 \r
@@ -105,12 +141,19 @@ namespace Handbrake.Controls
         }\r
         private void btn_srtAdd_Click(object sender, EventArgs e)\r
         {\r
+            string defaultSub = "No";\r
+            if (check_default_srt.Checked)\r
+            {\r
+                defaultSub = "Yes";\r
+                setNoDefault();\r
+            }\r
+\r
             ListViewItem newTrack = new ListViewItem(getNewID().ToString());\r
 \r
             newTrack.SubItems.Add(srt_lang.SelectedItem + ", (" + srt_charcode.SelectedItem + ")");\r
             newTrack.SubItems.Add("No");\r
             newTrack.SubItems.Add("No");\r
-            newTrack.SubItems.Add("No");\r
+            newTrack.SubItems.Add(defaultSub);\r
             if (openFileDialog.FileName != null)\r
                 newTrack.SubItems.Add(openFileDialog.FileName);\r
             else\r
@@ -140,6 +183,8 @@ namespace Handbrake.Controls
                     int.TryParse(lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[6].Text, out offsetVal);\r
                     srt_offset.Value = offsetVal;\r
 \r
+                    check_default_srt.CheckState = lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[4].Text == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
+\r
                     SRTGroup.Text = "Selected Track: " + lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[0].Text;\r
                     SubTitlesGroup.Text = "Selected Track: None";\r
                 }\r
@@ -156,7 +201,7 @@ namespace Handbrake.Controls
                     drp_subtitleTracks.SelectedItem = lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[1];\r
 \r
                     check_forced.CheckState = lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[2].Text == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
-                    check_burned.CheckState = lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[3].Text == "Yes" ? CheckState.Checked : CheckState.Unchecked;  \r
+                    check_burned.CheckState = lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[3].Text == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
                     check_default.CheckState = lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[4].Text == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
 \r
                     SubTitlesGroup.Text = "Selected Track: " + lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[0].Text;\r
@@ -213,6 +258,18 @@ namespace Handbrake.Controls
                 lv_subList.Select();\r
             }\r
         }\r
+        private void check_default_srt_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            // Update an item in the  list if required.\r
+            if (lv_subList.Items.Count != 0 && lv_subList.SelectedIndices.Count != 0)\r
+            {\r
+                if (check_default_srt.Checked) // Make sure we only have 1 default track\r
+                    setNoDefault();\r
+\r
+                lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[4].Text = check_default_srt.Checked ? "Yes" : "No";\r
+                lv_subList.Select();\r
+            }\r
+        }\r
 \r
         // SRT Controls\r
         private void srt_offset_ValueChanged(object sender, EventArgs e)\r
@@ -250,6 +307,13 @@ namespace Handbrake.Controls
         private void srt_browse_Click(object sender, EventArgs e)\r
         {\r
             openFileDialog.ShowDialog();\r
+\r
+            // Update an item in the  list if required.\r
+            if (lv_subList.Items.Count != 0 && lv_subList.SelectedIndices.Count != 0)\r
+            {\r
+                lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[5].Text = openFileDialog.FileName;\r
+                lv_subList.Select();\r
+            }\r
         }\r
 \r
         // Right Click Menu\r