OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmAddPreset.cs
index cf9b513..22ba835 100644 (file)
-using System;\r
-using System.Collections.Generic;\r
-using System.ComponentModel;\r
-using System.Data;\r
-using System.Drawing;\r
-using System.Text;\r
-using System.Windows.Forms;\r
-using System.IO;\r
+/*  frmAddPreset.cs $\r
+    This file is part of the HandBrake source code.\r
+    Homepage: <http://handbrake.fr>.\r
+    It may be used under the terms of the GNU General Public License. */\r
 \r
 namespace Handbrake\r
 {\r
+    using System;\r
+    using System.Windows.Forms;\r
+\r
+    using Handbrake.Functions;\r
+    using Handbrake.Model;\r
+\r
+    using Presets;\r
+\r
+    /// <summary>\r
+    /// The Add Preset Window\r
+    /// </summary>\r
     public partial class frmAddPreset : Form\r
     {\r
-        private frmMain frmMainWindow;\r
-        public frmAddPreset(frmMain fmw)\r
+        private readonly frmMain mainWindow;\r
+\r
+        /// <summary>\r
+        /// The Preset Handler\r
+        /// </summary>\r
+        private readonly PresetsHandler presetCode;\r
+\r
+        /// <summary>\r
+        /// Initializes a new instance of the <see cref="frmAddPreset"/> class.\r
+        /// </summary>\r
+        /// <param name="mainWindow"></param>\r
+        /// <param name="presetHandler">\r
+        /// The preset handler.\r
+        /// </param>\r
+        public frmAddPreset(frmMain mainWindow, PresetsHandler presetHandler)\r
         {\r
             InitializeComponent();\r
-            frmMainWindow = fmw;\r
+            this.mainWindow = mainWindow;\r
+            presetCode = presetHandler;\r
+\r
+            cb_usePictureSettings.SelectedIndex = 0;\r
         }\r
 \r
-        private void btn_add_Click(object sender, EventArgs e)\r
+        /// <summary>\r
+        /// Handle the Add button event.\r
+        /// </summary>\r
+        /// <param name="sender">\r
+        /// The sender.\r
+        /// </param>\r
+        /// <param name="e">\r
+        /// The e.\r
+        /// </param>\r
+        private void BtnAddClick(object sender, EventArgs e)\r
         {\r
-            if (txt_preset_name.Text.Trim() == "")\r
-                MessageBox.Show("You have not entered a name for the preset.","Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
-            else if (txt_preset_name.Text.Trim().Contains("--"))\r
-                MessageBox.Show("The preset name can not contain two dashes '--'","Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
-            else\r
+            if (string.IsNullOrEmpty(txt_preset_name.Text.Trim()))\r
             {\r
-                Functions.Common hb_common_func = new Functions.Common();\r
-\r
-                string userPresets = Application.StartupPath.ToString() + "\\user_presets.dat";\r
-                try\r
-                {\r
-                    // Create a StreamWriter and open the file\r
-                    StreamWriter line = File.AppendText(userPresets);\r
-\r
-                    // Generate and write the preset string to the file\r
-                    String query = hb_common_func.GenerateTheQuery(frmMainWindow);\r
-                    String preset = "+ " + txt_preset_name.Text + ":  " + query;\r
-                    line.WriteLine(preset);\r
-\r
-                    // close the stream\r
-                    line.Close();\r
-                    line.Dispose();\r
-                    MessageBox.Show("Your profile has been sucessfully added.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
-                }\r
-                catch (Exception exc)\r
-                {\r
-                    MessageBox.Show("Unable to write to the file. Please make sure the location has the correct permissions for file writing.\n" + exc.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
-                }\r
-                frmMainWindow.loadPresetPanel();\r
-                this.Close();\r
+                MessageBox.Show("You must enter a preset name!", "Warning",\r
+                                MessageBoxButtons.OK, MessageBoxIcon.Warning);                \r
+                return;\r
             }\r
-        }\r
-    }\r
-}\r
 \r
+            QueryPictureSettingsMode pictureSettingsMode;\r
+\r
+            switch (cb_usePictureSettings.SelectedIndex)\r
+            {\r
+                case 0:\r
+                    pictureSettingsMode = QueryPictureSettingsMode.None;\r
+                    break;\r
+                case 1:\r
+                    pictureSettingsMode = QueryPictureSettingsMode.SourceMaximum;\r
+                    break;\r
+                default:\r
+                    pictureSettingsMode = QueryPictureSettingsMode.None;\r
+                    break;\r
+            }\r
+\r
+            string query = QueryGenerator.GenerateQueryForPreset(mainWindow, pictureSettingsMode, check_useFilters.Checked, 0, 0);\r
 \r
+            if (presetCode.Add(txt_preset_name.Text.Trim(), query, pictureSettingsMode != QueryPictureSettingsMode.None))\r
+            {\r
+                this.DialogResult = DialogResult.OK;\r
+                this.Close();           \r
+            }\r
+            else\r
+                MessageBox.Show("Sorry, that preset name already exists. Please choose another!", "Warning", \r
+                                MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+        }\r
 \r
+        /// <summary>\r
+        /// Handle the Cancel button event\r
+        /// </summary>\r
+        /// <param name="sender">\r
+        /// The sender.\r
+        /// </param>\r
+        /// <param name="e">\r
+        /// The e.\r
+        /// </param>\r
+        private void BtnCancelClick(object sender, EventArgs e)\r
+        {\r
+            this.DialogResult = DialogResult.Cancel;\r
+            this.Close();\r
+        }\r
+    }\r
+}
\ No newline at end of file