-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