It may be used under the terms of the GNU General Public License. */\r
\r
using System;\r
-using System.Collections.Generic;\r
-using System.Collections.Specialized;\r
+using System.Collections;\r
using System.ComponentModel;\r
using System.Data;\r
using System.Drawing;\r
Thread.Sleep(100);\r
}\r
\r
- // Update the presets\r
- if (Properties.Settings.Default.updatePresets == "Checked")\r
- {\r
- lblStatus.Text = "Updaing Presets ...";\r
- Application.DoEvents();\r
- grabCLIPresets();\r
- Thread.Sleep(200);\r
- }\r
-\r
- // Load the presets for the preset box\r
- updatePresets();\r
-\r
+ // Load the presets\r
+ lblStatus.Text = "Loading Presets ...";\r
+ Application.DoEvents();\r
+ loadPresetPanel();\r
+ Thread.Sleep(200);\r
+ \r
// Now load the users default if required. (Will overide the above setting)\r
if (Properties.Settings.Default.defaultSettings == "Checked")\r
{\r
{\r
treeView_presets.Nodes.Clear();\r
grabCLIPresets();\r
- updatePresets();\r
- MessageBox.Show("Presets have been updated", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
+ loadPresetPanel();\r
+ if (treeView_presets.Nodes.Count == 0)\r
+ MessageBox.Show("Unable to load the presets.dat file. Please select \"Update Built-in Presets\" from the Presets Menu \nMake sure you are running the program in Admin mode if running on Vista. See Windows FAQ for details!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ else\r
+ MessageBox.Show("Presets have been updated", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
}\r
\r
private void mnu_SelectDefault_Click(object sender, EventArgs e)\r
#region Preset System\r
\r
// Import Current Presets\r
- private void updatePresets()\r
+ private void loadPresetPanel()\r
{\r
- string[] presets = new string[17];\r
- presets[0] = "Animation";\r
- presets[1] = "AppleTV";\r
- presets[2] = "Bedlam";\r
- presets[3] = "Blind";\r
- presets[4] = "Broke";\r
- presets[5] = "Classic";\r
- presets[6] = "Constant Quality Rate";\r
- presets[7] = "Deux Six Quatre";\r
- presets[8] = "Film";\r
- presets[9] = "iPhone / iPod Touch";\r
- presets[10] = "iPod High-Rez";\r
- presets[11] = "iPod Low-Rez";\r
- presets[12] = "Normal";\r
- presets[13] = "PS3";\r
- presets[14] = "PSP";\r
- presets[15] = "QuickTime";\r
- presets[16] = "Television";\r
-\r
+ ArrayList presetNameList = new ArrayList();\r
+ \r
+ string appPath = Application.StartupPath.ToString() + "\\presets.dat";\r
+ if (File.Exists(appPath))\r
+ {\r
+ StreamReader presetInput = new StreamReader(appPath);\r
+ while (!presetInput.EndOfStream)\r
+ {\r
+ if ((char)presetInput.Peek() == '+')\r
+ {\r
+ string preset = presetInput.ReadLine().Replace("+ ", "");\r
+ Regex r = new Regex("(: )"); // Split on hyphens. \r
+ presetNameList.Add(r.Split(preset));\r
+ }\r
+ else\r
+ presetInput.ReadLine();\r
+ }\r
+ }\r
+ \r
TreeNode preset_treeview = new TreeNode();\r
-\r
- foreach (string preset in presets)\r
+ foreach (string[] preset in presetNameList)\r
{\r
- preset_treeview = new TreeNode(preset);\r
+ preset_treeview = new TreeNode(preset[0]);\r
\r
// Now Fill Out List View with Items\r
treeView_presets.Nodes.Add(preset_treeview);\r
}\r
}\r
\r
+ // Generate a new presets.dat file from the CLI\r
private void grabCLIPresets()\r
{\r
string appPath = Application.StartupPath.ToString() + "\\";\r
hbproc.Close();\r
}\r
\r
- // Function to select the default preset.\r
+ // Selects the preset called "normal". This is HandBrakes default settings\r
private void loadNormalPreset()\r
{\r
- string appPath = Application.StartupPath.ToString() + "\\presets.dat";\r
- if (File.Exists(appPath))\r
+ try\r
{\r
-\r
- int normal = 0;\r
- foreach (TreeNode treenode in treeView_presets.Nodes)\r
+ string appPath = Application.StartupPath.ToString() + "\\presets.dat";\r
+ if (File.Exists(appPath))\r
{\r
- if (treenode.ToString().Equals("TreeNode: Normal"))\r
- normal = treenode.Index;\r
- }\r
\r
- TreeNode np = treeView_presets.Nodes[normal];\r
+ int normal = 0;\r
+ foreach (TreeNode treenode in treeView_presets.Nodes)\r
+ {\r
+ if (treenode.ToString().Equals("TreeNode: Normal"))\r
+ normal = treenode.Index;\r
+ }\r
+\r
+ TreeNode np = treeView_presets.Nodes[normal];\r
\r
- treeView_presets.SelectedNode = np;\r
+ treeView_presets.SelectedNode = np;\r
+ }\r
+ }\r
+ catch (Exception)\r
+ {\r
+ // Do nothing\r
}\r
}\r
\r
- // Buttons\r
+ // Set's the current options set in the program as the new defaults for the program.\r
private void btn_setDefault_Click(object sender, EventArgs e)\r
{\r
String query = hb_common_func.GenerateTheQuery(this);\r
MessageBox.Show("New default settings saved.", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
}\r
\r
- // Preset Selection\r
+ // When the user select a preset from the treeview, load it\r
private void treeView_presets_AfterSelect(object sender, TreeViewEventArgs e)\r
{\r
string selectedPreset = null;\r
Regex r = new Regex("(: )"); // Split on hyphens. \r
string[] presetName = r.Split(preset);\r
\r
-\r
if (selectedPreset == presetName[0])\r
{\r
// Need to disable anamorphic now, otherwise it may overide the width / height values later.\r
presetInput.ReadLine();\r
}\r
}\r
- else\r
- {\r
- MessageBox.Show("Unable to load the presets.dat file. Please select \"Update Built-in Presets\" from the Presets Menu \nMake sure you are running the program in Admin mode if running on Vista. See Windows FAQ for details!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
- }\r
}\r
catch (Exception exc)\r
{\r