private Form splash;\r
public string sourcePath;\r
private string lastAction;\r
+ private SourceType selectedSourceType;\r
+ private string dvdDrivePath;\r
+ private string dvdDriveLabel;\r
\r
// Delegates **********************************************************\r
private delegate void UpdateWindowHandler();\r
tabs_panel.TabPages.RemoveAt(7); // Remove the query editor tab if the user does not want it enabled.\r
\r
// Load the user's default settings or Normal Preset\r
- if (Properties.Settings.Default.defaultSettings && Properties.Settings.Default.defaultPreset != "")\r
+ if (Properties.Settings.Default.defaultPreset != "")\r
{\r
- if (presetHandler.getPreset(Properties.Settings.Default.defaultPreset) != null)\r
+ if (presetHandler.GetPreset(Properties.Settings.Default.defaultPreset) != null)\r
{\r
- string query = presetHandler.getPreset(Properties.Settings.Default.defaultPreset).Query;\r
- Boolean loadPictureSettings = presetHandler.getPreset(Properties.Settings.Default.defaultPreset).PictureSettings;\r
+ string query = presetHandler.GetPreset(Properties.Settings.Default.defaultPreset).Query;\r
+ Boolean loadPictureSettings = presetHandler.GetPreset(Properties.Settings.Default.defaultPreset).PictureSettings;\r
\r
if (query != null)\r
{\r
}\r
#endregion\r
\r
+ #region Properties\r
+ public string SourceName\r
+ {\r
+ get\r
+ {\r
+ if (this.selectedSourceType == SourceType.DvdDrive)\r
+ {\r
+ return this.dvdDriveLabel;\r
+ }\r
+\r
+ return Path.GetFileNameWithoutExtension(this.sourcePath);\r
+ }\r
+ }\r
+ #endregion\r
+\r
#region Events\r
// Encoding Events for setting up the GUI\r
private void events()\r
#region Presets Menu\r
private void mnu_presetReset_Click(object sender, EventArgs e)\r
{\r
- presetHandler.updateBuiltInPresets();\r
+ presetHandler.UpdateBuiltInPresets();\r
loadPresetPanel();\r
if (treeView_presets.Nodes.Count == 0)\r
MessageBox.Show("Unable to load the presets.xml file. Please select \"Update Built-in Presets\" from the Presets Menu. \nMake sure you are running the program in Admin mode if running on Vista. See Windows FAQ for details!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
}\r
private void mnu_delete_preset_Click(object sender, EventArgs e)\r
{\r
- presetHandler.removeBuiltInPresets();\r
+ presetHandler.RemoveBuiltInPresets();\r
loadPresetPanel(); // Reload the preset panel\r
}\r
private void mnu_SelectDefault_Click(object sender, EventArgs e)\r
{\r
DialogResult result = MessageBox.Show("Do you wish to include picture settings when updating the preset: " + treeView_presets.SelectedNode.Text, "Update Preset", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
if (result == DialogResult.Yes)\r
- presetHandler.updatePreset(treeView_presets.SelectedNode.Text, QueryGenerator.GenerateTabbedComponentsQuery(this), true);\r
+ presetHandler.Update(treeView_presets.SelectedNode.Text, QueryGenerator.GenerateTabbedComponentsQuery(this), true);\r
else if (result == DialogResult.No)\r
- presetHandler.updatePreset(treeView_presets.SelectedNode.Text, QueryGenerator.GenerateTabbedComponentsQuery(this), false);\r
+ presetHandler.Update(treeView_presets.SelectedNode.Text, QueryGenerator.GenerateTabbedComponentsQuery(this), false);\r
}\r
private void pmnu_delete_click(object sender, EventArgs e)\r
{\r
if (treeView_presets.SelectedNode != null)\r
{\r
- presetHandler.remove(treeView_presets.SelectedNode.Text);\r
+ presetHandler.Remove(treeView_presets.SelectedNode.Text);\r
treeView_presets.Nodes.Remove(treeView_presets.SelectedNode);\r
}\r
treeView_presets.Select();\r
\r
// Now enable the save menu if the selected preset is a user preset\r
if (treeView_presets.SelectedNode != null)\r
- if (presetHandler.checkIfUserPresetExists(treeView_presets.SelectedNode.Text))\r
+ if (presetHandler.CheckIfUserPresetExists(treeView_presets.SelectedNode.Text))\r
pmnu_saveChanges.Enabled = true;\r
\r
treeView_presets.Select();\r
{\r
if (treeView_presets.SelectedNode != null)\r
{\r
- presetHandler.remove(treeView_presets.SelectedNode.Text);\r
+ presetHandler.Remove(treeView_presets.SelectedNode.Text);\r
treeView_presets.Nodes.Remove(treeView_presets.SelectedNode);\r
}\r
}\r
if (result == DialogResult.Yes)\r
{\r
if (treeView_presets.SelectedNode != null)\r
- presetHandler.remove(treeView_presets.SelectedNode.Text);\r
+ presetHandler.Remove(treeView_presets.SelectedNode.Text);\r
\r
// Remember each nodes expanded status so we can reload it\r
List<Boolean> nodeStatus = new List<Boolean>();\r
{\r
// Ok, so, we've selected a preset. Now we want to load it.\r
string presetName = treeView_presets.SelectedNode.Text;\r
- if (presetHandler.getPreset(presetName) != null)\r
+ if (presetHandler.GetPreset(presetName) != null)\r
{\r
- string query = presetHandler.getPreset(presetName).Query;\r
- Boolean loadPictureSettings = presetHandler.getPreset(presetName).PictureSettings;\r
+ string query = presetHandler.GetPreset(presetName).Query;\r
+ Boolean loadPictureSettings = presetHandler.GetPreset(presetName).PictureSettings;\r
\r
if (query != null)\r
{\r
if (openPreset.ShowDialog() == DialogResult.OK)\r
{\r
QueryParser parsed = imp.importMacPreset(openPreset.FileName);\r
- if (presetHandler.checkIfUserPresetExists(parsed.PresetName + " (Imported)"))\r
+ if (presetHandler.CheckIfUserPresetExists(parsed.PresetName + " (Imported)"))\r
{\r
DialogResult result = MessageBox.Show("This preset appears to already exist. Would you like to overwrite it?", "Overwrite preset?",\r
MessageBoxButtons.YesNo, MessageBoxIcon.Warning);\r
if (result == DialogResult.Yes)\r
{\r
PresetLoader.presetLoader(this, parsed, parsed.PresetName, parsed.UsesPictureSettings);\r
- presetHandler.updatePreset(parsed.PresetName + " (Imported)", queryGen.GenerateCLIQuery(this, 0, null),\r
+ presetHandler.Update(parsed.PresetName + " (Imported)", queryGen.GenerateCLIQuery(this, 0, null),\r
parsed.UsesPictureSettings);\r
}\r
}\r
else\r
{\r
PresetLoader.presetLoader(this, parsed, parsed.PresetName, parsed.UsesPictureSettings);\r
- presetHandler.addPreset(parsed.PresetName, queryGen.GenerateCLIQuery(this, 0, null), parsed.UsesPictureSettings);\r
+ presetHandler.Add(parsed.PresetName, queryGen.GenerateCLIQuery(this, 0, null), parsed.UsesPictureSettings);\r
\r
- if (presetHandler.addPreset(parsed.PresetName + " (Imported)", queryGen.GenerateCLIQuery(this, 0, null), parsed.UsesPictureSettings))\r
+ if (presetHandler.Add(parsed.PresetName + " (Imported)", queryGen.GenerateCLIQuery(this, 0, null), parsed.UsesPictureSettings))\r
{\r
TreeNode preset_treeview = new TreeNode(parsed.PresetName + " (Imported)") { ForeColor = Color.Black };\r
treeView_presets.Nodes.Add(preset_treeview);\r
#region ToolStrip\r
private void btn_source_Click(object sender, EventArgs e)\r
{\r
- if (Properties.Settings.Default.drive_detection)\r
- {\r
- mnu_dvd_drive.Visible = true;\r
- Thread driveInfoThread = new Thread(getDriveInfoThread);\r
- driveInfoThread.Start();\r
- }\r
- else\r
- mnu_dvd_drive.Visible = false;\r
+ mnu_dvd_drive.Visible = true;\r
+ Thread driveInfoThread = new Thread(getDriveInfoThread);\r
+ driveInfoThread.Start();\r
}\r
private void btn_start_Click(object sender, EventArgs e)\r
{\r
if (overwrite == DialogResult.Yes)\r
{\r
if (encodeQueue.Count == 0)\r
- encodeQueue.AddJob(query, sourcePath, text_destination.Text);\r
+ encodeQueue.AddJob(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));\r
\r
queueWindow.setQueue();\r
if (encodeQueue.Count > 1)\r
queueWindow.Show(false);\r
\r
setEncodeStarted(); // Encode is running, so setup the GUI appropriately\r
- if (ActivityWindow != null)\r
- ActivityWindow.setLogView(false);\r
encodeQueue.StartEncodeQueue(); // Start The Queue Encoding Process\r
lastAction = "encode"; // Set the last action to encode - Used for activity window.\r
+\r
+ if (ActivityWindow != null)\r
+ ActivityWindow.SetLogView(false);\r
+\r
}\r
this.Focus();\r
}\r
DialogResult result = MessageBox.Show("There is already a queue item for this destination path. \n\n If you continue, the encode will be overwritten. Do you wish to continue?",\r
"Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);\r
if (result == DialogResult.Yes)\r
- encodeQueue.AddJob(query, sourcePath, text_destination.Text);\r
+ encodeQueue.AddJob(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));\r
\r
}\r
else\r
- encodeQueue.AddJob(query, sourcePath, text_destination.Text);\r
+ encodeQueue.AddJob(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));\r
+\r
+ lbl_encode.Text = encodeQueue.Count + " encode(s) pending in the queue";\r
\r
queueWindow.Show();\r
}\r
private void btn_showQueue_Click(object sender, EventArgs e)\r
{\r
queueWindow.Show();\r
+ queueWindow.Activate();\r
}\r
private void tb_preview_Click(object sender, EventArgs e)\r
{\r
if (ActivityWindow == null)\r
ActivityWindow = new frmActivityWindow(file, encodeQueue, this);\r
\r
+ ActivityWindow.SetLogView(!encodeQueue.isEncoding);\r
+\r
ActivityWindow.Show();\r
}\r
#endregion\r
private void btn_dvd_source_Click(object sender, EventArgs e)\r
{\r
if (DVD_Open.ShowDialog() == DialogResult.OK)\r
- selectSource(DVD_Open.SelectedPath, 1);\r
+ {\r
+ this.selectedSourceType = SourceType.Folder;\r
+ selectSource(DVD_Open.SelectedPath);\r
+ }\r
else\r
UpdateSourceLabel();\r
}\r
private void btn_file_source_Click(object sender, EventArgs e)\r
{\r
if (ISO_Open.ShowDialog() == DialogResult.OK)\r
- selectSource(ISO_Open.FileName, 2);\r
+ {\r
+ this.selectedSourceType = SourceType.VideoFile;\r
+ selectSource(ISO_Open.FileName);\r
+ }\r
else\r
UpdateSourceLabel();\r
}\r
private void mnu_dvd_drive_Click(object sender, EventArgs e)\r
{\r
- if (!mnu_dvd_drive.Text.Contains("VIDEO_TS")) return;\r
- string[] path = mnu_dvd_drive.Text.Split(' ');\r
- selectSource(path[0], 3);\r
+ if (this.dvdDrivePath == null) return;\r
+ this.selectedSourceType = SourceType.DvdDrive;\r
+ selectSource(this.dvdDrivePath);\r
}\r
- private void selectSource(string file, int type)\r
+ private void selectSource(string file)\r
{\r
Check_ChapterMarkers.Enabled = true;\r
lastAction = "scan";\r
return;\r
}\r
\r
- switch (type) // Start the scan\r
- {\r
- case 1: // btn_dvd_source_Click()\r
- case 3: // mnu_dvd_drive_Click()\r
- sourcePath = Path.GetFullPath(file);\r
- startScan(file);\r
- break;\r
- case 2: // btn_file_source_Click()\r
- sourcePath = Path.GetFileName(file);\r
- startScan(file);\r
- break;\r
- }\r
+ sourcePath = Path.GetFileName(file);\r
+ startScan(file);\r
}\r
private void drp_dvdtitle_Click(object sender, EventArgs e)\r
{\r
Subtitles.drp_subtitleTracks.Items.Add("Foreign Audio Search (Bitmap)");\r
Subtitles.drp_subtitleTracks.Items.AddRange(selectedTitle.Subtitles.ToArray());\r
Subtitles.drp_subtitleTracks.SelectedIndex = 0;\r
+ Subtitles.Clear();\r
Subtitles.setSubtitleTrackAuto();\r
}\r
\r
if (autoPath != null)\r
text_destination.Text = autoPath;\r
else\r
- MessageBox.Show("You currently have \"Automatically name output files\" enabled for the destination file box, but you do not have a default direcotry set.\n\nYou should set a \"Default Path\" in HandBrakes preferences. (See 'Tools' menu -> 'Options' -> 'General' Tab -> 'Default Path')", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+ MessageBox.Show("You currently have \"Automatically name output files\" enabled for the destination file box, but you do not have a default directory set.\n\nYou should set a \"Default Path\" in HandBrakes preferences. (See 'Tools' menu -> 'Options' -> 'General' Tab -> 'Default Path')", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
}\r
\r
data_chpt.Rows.Clear();\r
{\r
if (newExtension == ".mp4" || newExtension == ".m4v")\r
if (Properties.Settings.Default.useM4v || Check_ChapterMarkers.Checked || AudioSettings.RequiresM4V() || Subtitles.RequiresM4V())\r
- newExtension = ".m4v" ;\r
+ newExtension = ".m4v";\r
else\r
newExtension = ".mp4";\r
\r
- text_destination.Text = text_destination.Text.Replace(".mp4", newExtension);\r
- text_destination.Text = text_destination.Text.Replace(".m4v", newExtension);\r
- text_destination.Text = text_destination.Text.Replace(".mkv", newExtension);\r
+ if (Path.HasExtension(newExtension))\r
+ text_destination.Text = Path.ChangeExtension(text_destination.Text, newExtension);\r
}\r
\r
//Video Tab\r
// Setup the GUI components for the scan.\r
sourcePath = filename;\r
foreach (Control ctrl in Controls)\r
- {\r
if (!(ctrl is StatusStrip || ctrl is MenuStrip || ctrl is ToolStrip))\r
ctrl.Enabled = false;\r
- }\r
+\r
lbl_encode.Visible = true;\r
lbl_encode.Text = "Scanning ...";\r
btn_source.Enabled = false;\r
try\r
{\r
if (ActivityWindow != null)\r
- ActivityWindow.setLogView(true);\r
+ ActivityWindow.SetLogView(true);\r
isScanning = true;\r
ThreadPool.QueueUserWorkItem(scanProcess);\r
}\r
}\r
private void UpdateSourceLabel()\r
{\r
- labelSource.Text = string.IsNullOrEmpty(sourcePath) ? "Select \"Source\" to continue." : Path.GetFileName(sourcePath);\r
+ labelSource.Text = string.IsNullOrEmpty(sourcePath) ? "Select \"Source\" to continue." : this.SourceName;\r
}\r
#endregion\r
\r
}\r
\r
lbl_encode.Visible = true;\r
- lbl_encode.Text = "Encoding in Progress";\r
+ lbl_encode.Text = "Encoding with " + encodeQueue.Count + " encode(s) pending";\r
btn_start.Text = "Stop";\r
btn_start.ToolTipText = "Stop the encoding process.";\r
btn_start.Image = Properties.Resources.stop;\r
{\r
if (File.Exists(curDrive.RootDirectory + "VIDEO_TS\\VIDEO_TS.IFO"))\r
{\r
- mnu_dvd_drive.Text = curDrive.RootDirectory + "VIDEO_TS (" + curDrive.VolumeLabel + ")";\r
+ this.dvdDrivePath = curDrive.RootDirectory + "VIDEO_TS";\r
+ this.dvdDriveLabel = curDrive.VolumeLabel;\r
+ mnu_dvd_drive.Text = this.dvdDrivePath + " (" + this.dvdDriveLabel + ")";\r
foundDrive = true;\r
break;\r
}\r
/// </summary>\r
public void loadPresetPanel()\r
{\r
- if (presetHandler.checkIfPresetsAreOutOfDate())\r
+ if (presetHandler.CheckIfPresetsAreOutOfDate())\r
if (!Properties.Settings.Default.presetNotification)\r
MessageBox.Show(splash,\r
"HandBrake has determined your built-in presets are out of date... These presets will now be updated.",\r
"Preset Update", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
\r
- presetHandler.getPresetPanel(ref treeView_presets);\r
+ presetHandler.GetPresetPanel(ref treeView_presets);\r
treeView_presets.Update();\r
}\r
#endregion\r
}\r
#endregion\r
\r
+ #region enum\r
+ private enum SourceType\r
+ {\r
+ None = 0,\r
+ Folder,\r
+ DvdDrive,\r
+ VideoFile\r
+ }\r
+ #endregion\r
// This is the END of the road ****************************************\r
}\r
}
\ No newline at end of file