using System.Collections;\r
using System.Collections.Generic;\r
using System.Drawing;\r
-using System.Text;\r
using System.Windows.Forms;\r
using System.IO;\r
using System.Diagnostics;\r
using System.Threading;\r
-using System.Runtime.InteropServices;\r
-using System.Globalization;\r
-using System.Text.RegularExpressions;\r
\r
namespace Handbrake\r
{\r
loadPresetPanel(); // Load the Preset Panel\r
treeView_presets.ExpandAll();\r
lbl_encode.Text = "";\r
- queueWindow = new frmQueue(this); // Prepare the Queue\r
+ queueWindow = new frmQueue(encodeQueue); // Prepare the Queue\r
if (Properties.Settings.Default.QueryEditorTab != "Checked")\r
tabs_panel.TabPages.RemoveAt(5); // Remove the query editor tab if the user does not want it enabled.\r
\r
this.Enabled = true;\r
\r
// Event Handlers\r
- if (Properties.Settings.Default.MainWindowMinimize == "Checked")\r
- this.Resize += new EventHandler(frmMain_Resize);\r
+ events();\r
\r
// Queue Recovery\r
queueRecovery();\r
}\r
#endregion\r
\r
+ #region Events\r
+ // Encoding Events for setting up the GUI\r
+ private void events()\r
+ {\r
+ // Handle Window Resize\r
+ if (Properties.Settings.Default.MainWindowMinimize == "Checked")\r
+ this.Resize += new EventHandler(frmMain_Resize);\r
+\r
+ // Handle Encode Start\r
+ encodeQueue.OnEncodeEnded += new EventHandler(encodeEnded);\r
+ encodeQueue.OnPaused += new EventHandler(encodePaused);\r
+ encodeQueue.OnEncodeStart += new EventHandler(encodeStarted);\r
+ }\r
+ private void encodeStarted(object sender, EventArgs e)\r
+ {\r
+ setLastAction("encode");\r
+ setEncodeStarted();\r
+ }\r
+ private void encodeEnded(object sender, EventArgs e)\r
+ {\r
+ setEncodeFinished();\r
+ }\r
+ private void encodePaused(object sender, EventArgs e)\r
+ {\r
+ setEncodeFinished();\r
+ }\r
+ #endregion\r
+\r
// User Interface Menus / Tool Strips *********************************\r
\r
#region File Menu\r
#region Tools Menu\r
private void mnu_encode_Click(object sender, EventArgs e)\r
{\r
- queueWindow.setQueue(encodeQueue);\r
+ queueWindow.setQueue();\r
queueWindow.Show();\r
}\r
private void mnu_encodeLog_Click(object sender, EventArgs e)\r
}\r
private void mnu_options_Click(object sender, EventArgs e)\r
{\r
- Form Options = new frmOptions(this);\r
+ Form Options = new frmOptions();\r
Options.ShowDialog();\r
}\r
#endregion\r
{\r
treeView_presets.CollapseAll();\r
}\r
+ private void pmnu_saveChanges_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, queryGen.generateTabbedComponentsQuery(this), true);\r
+ else if (result == DialogResult.No)\r
+ presetHandler.updatePreset(treeView_presets.SelectedNode.Text, queryGen.generateTabbedComponentsQuery(this), false);\r
+ }\r
private void pmnu_delete_click(object sender, EventArgs e)\r
{\r
if (treeView_presets.SelectedNode != null)\r
}\r
treeView_presets.Select();\r
}\r
+ private void presets_menu_Opening(object sender, System.ComponentModel.CancelEventArgs e)\r
+ {\r
+ // Make sure that the save menu is always disabled by default\r
+ pmnu_saveChanges.Enabled = false;\r
+\r
+ // Now enable the save menu if the selected preset is a user preset\r
+ if (treeView_presets.SelectedNode != null)\r
+ {\r
+ if (presetHandler.checkIfUserPresetExists(treeView_presets.SelectedNode.Text))\r
+ {\r
+ pmnu_saveChanges.Enabled = true;\r
+ }\r
+ }\r
+ treeView_presets.Select();\r
+ }\r
\r
// Presets Management\r
private void btn_addPreset_Click(object sender, EventArgs e)\r
\r
if (result == DialogResult.Yes)\r
{\r
+ // Pause The Queue\r
+ encodeQueue.pauseEncode();\r
+\r
+ // Kill the current process.\r
Process[] aProc = Process.GetProcessesByName("HandBrakeCLI");\r
Process HandBrakeCLI;\r
if (aProc.Length > 0)\r
HandBrakeCLI = aProc[0];\r
HandBrakeCLI.Kill();\r
}\r
- if (!queueWindow.isEncoding())\r
- setEncodeFinished();\r
+\r
+ // Update the GUI\r
+ setEncodeFinished();\r
}\r
}\r
else\r
encodeQueue.add(query, text_source.Text, text_destination.Text);\r
encodeQueue.write2disk("hb_queue_recovery.xml");\r
}\r
- queueWindow.setQueue(encodeQueue);\r
+ queueWindow.setQueue();\r
if (encodeQueue.count() > 1)\r
queueWindow.Show();\r
\r
- queueWindow.frmMain_encode();\r
-\r
setEncodeStarted(); // Encode is running, so setup the GUI appropriately\r
+ encodeQueue.startEncode(); // Start The Queue Encoding Process\r
+\r
}\r
else if (text_source.Text == string.Empty || text_source.Text == "Click 'Source' to continue" || text_destination.Text == string.Empty)\r
MessageBox.Show("No source OR destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
encodeQueue.add(query, text_source.Text, text_destination.Text);\r
encodeQueue.write2disk("hb_queue_recovery.xml"); // Writes the queue to the recovery file, just incase the GUI crashes.\r
\r
- queueWindow.setQueue(encodeQueue);\r
+ queueWindow.setQueue();\r
queueWindow.Show();\r
}\r
}\r
private void btn_showQueue_Click(object sender, EventArgs e)\r
{\r
- queueWindow.setQueue(encodeQueue);\r
+ queueWindow.setQueue();\r
queueWindow.Show();\r
}\r
private void mnu_vlcpreview_Click(object sender, EventArgs e)\r
DVD_Save.FileName = DVD_Save.FileName.Replace(".mp4", "").Replace(".m4v", "").Replace(".mkv", "").Replace(".ogm", "").Replace(".avi", "");\r
\r
// Show the dialog and set the main form file path\r
- if (text_destination.Text.EndsWith(".mp4"))\r
+ if (drop_format.SelectedIndex.Equals(0))\r
DVD_Save.FilterIndex = 1;\r
- else if (text_destination.Text.EndsWith(".m4v"))\r
+ else if (drop_format.SelectedIndex.Equals(1))\r
DVD_Save.FilterIndex = 2;\r
- else if (text_destination.Text.EndsWith(".avi"))\r
+ else if (drop_format.SelectedIndex.Equals(2))\r
DVD_Save.FilterIndex = 3;\r
- else if (text_destination.Text.EndsWith(".ogm"))\r
+ else if (drop_format.SelectedIndex.Equals(3))\r
DVD_Save.FilterIndex = 4;\r
- else if (text_destination.Text.EndsWith(".mkv"))\r
+ else if (drop_format.SelectedIndex.Equals(4))\r
DVD_Save.FilterIndex = 5;\r
\r
if (DVD_Save.ShowDialog() == DialogResult.OK)\r
\r
#endregion\r
\r
+\r
+\r
+\r
// This is the END of the road ------------------------------------------------------------------------------\r
}\r
}
\ No newline at end of file