OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Thu, 8 Jan 2009 19:51:08 +0000 (19:51 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Thu, 8 Jan 2009 19:51:08 +0000 (19:51 +0000)
- Patch (slightly modified) by ween to allow users to update their own presets via a "save changes" option in the presets right click menu.

git-svn-id: svn://localhost/HandBrake/trunk@2068 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/C#/Presets/PresetsHandler.cs
win/C#/frmMain.Designer.cs
win/C#/frmMain.cs

index fbd36fb..171b313 100644 (file)
@@ -20,6 +20,7 @@ namespace Handbrake.Presets
         /// </summary>\r
         /// <param name="presetName">String, The name of the new preset</param>\r
         /// <param name="query">String, the CLI query for the new preset</param>\r
+        /// <param name="pictureSettings"> Bool, store crop/picture sizes in the presets</param>\r
         public Boolean addPreset(string presetName, string query, Boolean pictureSettings)\r
         {\r
             if (checkIfPresetExists(presetName) == false)\r
@@ -68,16 +69,32 @@ namespace Handbrake.Presets
             }\r
             user_presets = newUserPresets;\r
 \r
-            // Now, Update the presets.xml and user_presets.xml file with the new items.\r
-            string userPresets = Application.StartupPath.ToString() + "\\user_presets.xml";\r
-            string presetsFile = Application.StartupPath.ToString() + "\\presets.xml";\r
-\r
             // Rebuild the user_presets.xml file\r
             updateUserPresetsFile();\r
             updatePresetsFile();\r
         }\r
 \r
         /// <summary>\r
+        /// Save changes to a given preset in the user preset list.\r
+        /// </summary>\r
+        /// <param name="presetName">String, The name of the new preset</param>\r
+        /// <param name="query">String, the CLI query for the new preset</param>\r
+        /// <param name="pictureSettings"> Bool, store crop/picture sizes in the preset</param>\r
+        public void updatePreset(string presetName, string query, Boolean pictureSettings)\r
+        {\r
+            // User Presets\r
+            foreach (Preset item in user_presets)\r
+            {\r
+                if (item.Name == presetName)\r
+                {\r
+                    item.Query = query;\r
+                    item.PictureSettings = pictureSettings;\r
+                    MessageBox.Show("Changes to \"" + presetName + "\" Saved", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
+                }\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
         /// Get a List of all the built in preset names.\r
         /// </summary>\r
         /// <returns>List<String> of preset names</returns>\r
@@ -314,5 +331,25 @@ namespace Handbrake.Presets
 \r
             return false;\r
         }\r
+\r
+        /// <summary>\r
+        /// Check if the user preset "name" exists in user_presets list.\r
+        /// </summary>\r
+        /// <param name="name"></param>\r
+        /// <returns></returns>\r
+        public Boolean checkIfUserPresetExists(string name)\r
+        {\r
+            if (name == string.Empty)\r
+                return false;\r
+\r
+            // User Presets\r
+            foreach (Preset item in user_presets)\r
+            {\r
+                if (item.Name == name)\r
+                    return true;\r
+            }\r
+\r
+            return false;\r
+        }\r
     }\r
 }
\ No newline at end of file
index b656adb..c52b60a 100644 (file)
@@ -232,6 +232,7 @@ namespace Handbrake
             this.pmnu_expandAll = new System.Windows.Forms.ToolStripMenuItem();\r
             this.pmnu_collapse = new System.Windows.Forms.ToolStripMenuItem();\r
             this.sep1 = new System.Windows.Forms.ToolStripSeparator();\r
+            this.pmnu_saveChanges = new System.Windows.Forms.ToolStripMenuItem();\r
             this.pmnu_delete = new System.Windows.Forms.ToolStripMenuItem();\r
             this.toolStrip1 = new System.Windows.Forms.ToolStrip();\r
             this.btn_source = new System.Windows.Forms.ToolStripDropDownButton();\r
@@ -2705,33 +2706,43 @@ namespace Handbrake
             this.pmnu_expandAll,\r
             this.pmnu_collapse,\r
             this.sep1,\r
+            this.pmnu_saveChanges,\r
             this.pmnu_delete});\r
             this.presets_menu.Name = "presets_menu";\r
-            this.presets_menu.Size = new System.Drawing.Size(140, 76);\r
+            this.presets_menu.Size = new System.Drawing.Size(155, 120);\r
+            this.presets_menu.Text = ";";\r
+            this.presets_menu.Opening += new System.ComponentModel.CancelEventHandler(this.presets_menu_Opening);\r
             // \r
             // pmnu_expandAll\r
             // \r
             this.pmnu_expandAll.Name = "pmnu_expandAll";\r
-            this.pmnu_expandAll.Size = new System.Drawing.Size(139, 22);\r
+            this.pmnu_expandAll.Size = new System.Drawing.Size(154, 22);\r
             this.pmnu_expandAll.Text = "Expand All";\r
             this.pmnu_expandAll.Click += new System.EventHandler(this.pmnu_expandAll_Click);\r
             // \r
             // pmnu_collapse\r
             // \r
             this.pmnu_collapse.Name = "pmnu_collapse";\r
-            this.pmnu_collapse.Size = new System.Drawing.Size(139, 22);\r
+            this.pmnu_collapse.Size = new System.Drawing.Size(154, 22);\r
             this.pmnu_collapse.Text = "Collapse All";\r
             this.pmnu_collapse.Click += new System.EventHandler(this.pmnu_collapse_Click);\r
             // \r
             // sep1\r
             // \r
             this.sep1.Name = "sep1";\r
-            this.sep1.Size = new System.Drawing.Size(136, 6);\r
+            this.sep1.Size = new System.Drawing.Size(151, 6);\r
+            // \r
+            // pmnu_saveChanges\r
+            // \r
+            this.pmnu_saveChanges.Name = "pmnu_saveChanges";\r
+            this.pmnu_saveChanges.Size = new System.Drawing.Size(154, 22);\r
+            this.pmnu_saveChanges.Text = "Save Changes";\r
+            this.pmnu_saveChanges.Click += new System.EventHandler(this.pmnu_saveChanges_Click);\r
             // \r
             // pmnu_delete\r
             // \r
             this.pmnu_delete.Name = "pmnu_delete";\r
-            this.pmnu_delete.Size = new System.Drawing.Size(139, 22);\r
+            this.pmnu_delete.Size = new System.Drawing.Size(154, 22);\r
             this.pmnu_delete.Text = "Delete";\r
             this.pmnu_delete.Click += new System.EventHandler(this.pmnu_delete_click);\r
             // \r
@@ -3187,6 +3198,7 @@ namespace Handbrake
         private System.Windows.Forms.ToolStripDropDownButton tb_preview;\r
         private System.Windows.Forms.ToolStripMenuItem mnu_qtpreview;\r
         private System.Windows.Forms.ToolStripMenuItem mnu_vlcpreview;\r
+        private System.Windows.Forms.ToolStripMenuItem pmnu_saveChanges;\r
 \r
     }\r
 }
\ No newline at end of file
index 828ff1e..83ea0de 100644 (file)
@@ -8,14 +8,10 @@ using System;
 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
@@ -136,7 +132,7 @@ namespace Handbrake
             events();\r
 \r
             // Queue Recovery\r
-            queueRecovery();    \r
+            queueRecovery();\r
         }\r
 \r
         // Startup Functions\r
@@ -332,6 +328,14 @@ namespace Handbrake
         {\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
@@ -349,6 +353,21 @@ namespace Handbrake
             }\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
@@ -542,7 +561,7 @@ namespace Handbrake
                         HandBrakeCLI = aProc[0];\r
                         HandBrakeCLI.Kill();\r
                     }\r
-                    \r
+\r
                     // Update the GUI\r
                     setEncodeFinished();\r
                 }\r
@@ -572,7 +591,7 @@ namespace Handbrake
 \r
                     setEncodeStarted(); // Encode is running, so setup the GUI appropriately\r
                     encodeQueue.startEncode(); // Start The Queue Encoding Process\r
-                    \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
@@ -1928,6 +1947,9 @@ namespace Handbrake
 \r
         #endregion\r
 \r
+\r
+\r
+\r
         // This is the END of the road ------------------------------------------------------------------------------\r
     }\r
 }
\ No newline at end of file