OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmMain.cs
index 7074f11..91ed404 100644 (file)
@@ -152,8 +152,7 @@ namespace Handbrake
                     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
@@ -212,21 +211,37 @@ namespace Handbrake
         // 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
@@ -538,9 +553,13 @@ namespace Handbrake
         /// </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
@@ -650,6 +669,7 @@ namespace Handbrake
         /// </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
@@ -657,10 +677,10 @@ namespace Handbrake
                     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
@@ -717,8 +737,13 @@ namespace Handbrake
         /// </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
@@ -864,7 +889,6 @@ namespace Handbrake
                 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
@@ -875,7 +899,7 @@ namespace Handbrake
                         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
@@ -920,17 +944,17 @@ namespace Handbrake
                                         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
@@ -1014,33 +1038,27 @@ namespace Handbrake
         {\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
@@ -1051,10 +1069,10 @@ namespace Handbrake
 \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
@@ -1135,7 +1153,7 @@ namespace Handbrake
         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
@@ -1955,7 +1973,7 @@ namespace Handbrake
         // 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
@@ -2214,7 +2232,7 @@ namespace Handbrake
                 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
@@ -2474,7 +2492,7 @@ namespace Handbrake
                 }\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