x264Panel.Reset2Defaults();\r
\r
QueryParser presetQuery = QueryParser.Parse(query);\r
- PresetLoader.LoadPreset(this, presetQuery, Properties.Settings.Default.defaultPreset,\r
- presetHandler.GetPreset(Properties.Settings.Default.defaultPreset).PictureSettings);\r
+ PresetLoader.LoadPreset(this, presetQuery, Properties.Settings.Default.defaultPreset);\r
\r
x264Panel.StandardizeOptString();\r
x264Panel.SetCurrentSettingsInPanel();\r
// Startup Functions \r
private void queueRecovery()\r
{\r
- if (Main.CheckQueueRecovery())\r
+ DialogResult result = DialogResult.None;\r
+ List<string> queueFiles = Main.CheckQueueRecovery();\r
+ if (queueFiles.Count == 1)\r
{\r
- DialogResult result =\r
- MessageBox.Show(\r
+ result = MessageBox.Show(\r
"HandBrake has detected unfinished items on the queue from the last time the application was launched. Would you like to recover these?",\r
"Queue Recovery Possible", MessageBoxButtons.YesNo, MessageBoxIcon.Question);\r
+ }\r
+ else if (queueFiles.Count > 1)\r
+ {\r
+ result = MessageBox.Show(\r
+ "HandBrake has detected multiple unfinished queue files. These will be from multiple instances of HandBrake running. Would you like to recover all unfinished jobs?",\r
+ "Queue Recovery Possible", MessageBoxButtons.YesNo, MessageBoxIcon.Question);\r
+ }\r
\r
- if (result == DialogResult.Yes)\r
- encodeQueue.LoadQueueFromFile("hb_queue_recovery.xml"); // Start Recovery\r
- else\r
+ if (result == DialogResult.Yes)\r
+ {\r
+ foreach (string file in queueFiles)\r
+ {\r
+ encodeQueue.LoadQueueFromFile(file); // Start Recovery\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if (Main.IsMultiInstance) return; // Don't tamper with the files if we are multi instance\r
+\r
+ string tempPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"HandBrake\");\r
+ foreach (string file in queueFiles)\r
{\r
- // Remove the Queue recovery file if the user doesn't want to recovery the last queue.\r
- string queuePath = Path.Combine(Path.GetTempPath(), "hb_queue_recovery.xml");\r
- if (File.Exists(queuePath))\r
- File.Delete(queuePath);\r
+ if (File.Exists(Path.Combine(tempPath, file)))\r
+ File.Delete(Path.Combine(tempPath, file));\r
}\r
}\r
}\r
/// </param>\r
private void btn_new_preset_Click(object sender, EventArgs e)\r
{\r
- Form preset = new frmAddPreset(this, QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null),\r
- presetHandler);\r
- preset.ShowDialog();\r
+ Form preset = new frmAddPreset(this, presetHandler);\r
+ if (preset.ShowDialog() == DialogResult.OK)\r
+ {\r
+ TreeNode presetTreeview = new TreeNode(presetHandler.LastPresetAdded.Name) { ForeColor = Color.Black };\r
+ treeView_presets.Nodes.Add(presetTreeview);\r
+ presetHandler.LastPresetAdded = null;\r
+ }\r
}\r
\r
#endregion\r
/// </param>\r
private void pmnu_saveChanges_Click(object sender, EventArgs e)\r
{\r
+ // TODO this requires a re-think since the Query Editor has changed.\r
DialogResult result =\r
MessageBox.Show(\r
"Do you wish to include picture settings when updating the preset: " +\r
MessageBoxIcon.Question);\r
if (result == DialogResult.Yes)\r
presetHandler.Update(treeView_presets.SelectedNode.Text,\r
- QueryGenerator.GenerateTabbedComponentsQuery(this), true);\r
+ QueryGenerator.GenerateQueryForPreset(this, QueryPictureSettingsMode.SourceMaximum, true, 0, 0), true);\r
else if (result == DialogResult.No)\r
presetHandler.Update(treeView_presets.SelectedNode.Text,\r
- QueryGenerator.GenerateTabbedComponentsQuery(this), false);\r
+ QueryGenerator.GenerateQueryForPreset(this, QueryPictureSettingsMode.SourceMaximum, true, 0, 0), false);\r
}\r
\r
/// <summary>\r
/// </param>\r
private void btn_addPreset_Click(object sender, EventArgs e)\r
{\r
- Form preset = new frmAddPreset(this, QueryGenerator.GenerateTabbedComponentsQuery(this), presetHandler);\r
- preset.ShowDialog();\r
+ Form preset = new frmAddPreset(this, presetHandler);\r
+ if (preset.ShowDialog() == DialogResult.OK)\r
+ {\r
+ TreeNode presetTreeview = new TreeNode(presetHandler.LastPresetAdded.Name) { ForeColor = Color.Black };\r
+ treeView_presets.Nodes.Add(presetTreeview);\r
+ presetHandler.LastPresetAdded = null;\r
+ }\r
}\r
\r
/// <summary>\r
if (preset != null)\r
{\r
string query = presetHandler.GetPreset(presetName).Query;\r
- bool loadPictureSettings = presetHandler.GetPreset(presetName).PictureSettings;\r
\r
if (query != null)\r
{\r
QueryParser presetQuery = QueryParser.Parse(query);\r
\r
// Now load the preset\r
- PresetLoader.LoadPreset(this, presetQuery, presetName, loadPictureSettings);\r
+ PresetLoader.LoadPreset(this, presetQuery, presetName);\r
\r
// The x264 widgets will need updated, so do this now:\r
x264Panel.StandardizeOptString();\r
MessageBoxButtons.YesNo, MessageBoxIcon.Warning);\r
if (result == DialogResult.Yes)\r
{\r
- PresetLoader.LoadPreset(this, parsed, parsed.PresetName, parsed.UsesPictureSettings);\r
+ PresetLoader.LoadPreset(this, parsed, parsed.PresetName);\r
presetHandler.Update(parsed.PresetName + " (Imported)",\r
- QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null),\r
+ QueryGenerator.GenerateFullQuery(this),\r
parsed.UsesPictureSettings);\r
}\r
}\r
else\r
{\r
- PresetLoader.LoadPreset(this, parsed, parsed.PresetName, parsed.UsesPictureSettings);\r
+ PresetLoader.LoadPreset(this, parsed, parsed.PresetName);\r
if (presetHandler.Add(parsed.PresetName + " (Imported)",\r
- QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null),\r
+ QueryGenerator.GenerateFullQuery(this),\r
parsed.UsesPictureSettings))\r
{\r
TreeNode preset_treeview = new TreeNode(parsed.PresetName + " (Imported)")\r
{\r
if (btn_start.Text == "Stop")\r
{\r
- DialogResult result;\r
- if (Properties.Settings.Default.enocdeStatusInGui &&\r
- !Properties.Settings.Default.showCliForInGuiEncodeStatus)\r
- {\r
- result = MessageBox.Show(\r
- "Are you sure you wish to cancel the encode?\n\nPlease note, when 'Enable in-GUI encode status' is enabled, stopping this encode will render the file unplayable. ",\r
- "Cancel Encode?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);\r
- }\r
- else\r
- {\r
- result = MessageBox.Show("Are you sure you wish to cancel the encode?", "Cancel Encode?",\r
- MessageBoxButtons.YesNo, MessageBoxIcon.Question);\r
- }\r
+ DialogResult result = !Properties.Settings.Default.showCliForInGuiEncodeStatus\r
+ ? MessageBox.Show(\r
+ "Are you sure you wish to cancel the encode?\n\nPlease note: Stopping this encode will render the file unplayable. ",\r
+ "Cancel Encode?",\r
+ MessageBoxButtons.YesNo,\r
+ MessageBoxIcon.Question)\r
+ : MessageBox.Show(\r
+ "Are you sure you wish to cancel the encode?",\r
+ "Cancel Encode?",\r
+ MessageBoxButtons.YesNo,\r
+ MessageBoxIcon.Question);\r
\r
if (result == DialogResult.Yes)\r
{\r
// Pause The Queue\r
encodeQueue.Pause();\r
\r
- if (Settings.Default.enocdeStatusInGui && !Settings.Default.showCliForInGuiEncodeStatus)\r
- {\r
- encodeQueue.Stop();\r
- }\r
- else\r
- {\r
+ if (Settings.Default.showCliForInGuiEncodeStatus)\r
encodeQueue.SafelyClose();\r
- }\r
+ else\r
+ encodeQueue.Stop();\r
}\r
}\r
else\r
\r
if (encodeQueue.Count != 0 || (!string.IsNullOrEmpty(jobSourcePath) && !string.IsNullOrEmpty(jobDestination)))\r
{\r
- string generatedQuery = QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null);\r
+ string generatedQuery = QueryGenerator.GenerateFullQuery(this);\r
string specifiedQuery = rtf_query.Text != string.Empty\r
? rtf_query.Text\r
- : QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null);\r
+ : QueryGenerator.GenerateFullQuery(this);\r
string query = string.Empty;\r
\r
// Check to make sure the generated query matches the GUI settings\r
private void btn_add2Queue_Click(object sender, EventArgs e)\r
{\r
// Get the CLI query or use the query editor if it's not empty.\r
- string query = QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null);\r
+ string query = QueryGenerator.GenerateFullQuery(this);\r
if (!string.IsNullOrEmpty(rtf_query.Text))\r
query = rtf_query.Text;\r
\r
// Query Editor Tab\r
private void btn_generate_Query_Click(object sender, EventArgs e)\r
{\r
- rtf_query.Text = QueryGenerator.GenerateCliQuery(this, drop_mode.SelectedIndex, 0, null);\r
+ rtf_query.Text = QueryGenerator.GenerateFullQuery(this);\r
}\r
\r
private void btn_clear_Click(object sender, EventArgs e)\r
QueryParser presetQuery = QueryParser.Parse(query);\r
\r
// Now load the preset\r
- PresetLoader.LoadPreset(this, presetQuery, "Load Back From Queue", true);\r
+ PresetLoader.LoadPreset(this, presetQuery, "Load Back From Queue");\r
\r
// The x264 widgets will need updated, so do this now:\r
x264Panel.StandardizeOptString();\r
}\r
\r
// Try to safely close out if we can, or kill the cli if using in-gui status\r
- if (Settings.Default.enocdeStatusInGui)\r
+ if (!Settings.Default.showCliForInGuiEncodeStatus)\r
encodeQueue.Stop();\r
else\r
encodeQueue.SafelyClose();\r