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
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
}\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
}\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
}\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
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
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
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
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