From 7c34a022134aecf194d65f1fbe0d445280d1de10 Mon Sep 17 00:00:00 2001 From: Terry MacDonald Date: Sun, 11 Oct 2020 20:14:22 +1300 Subject: [PATCH] Start programs details saved and loaded Next step is to make them actually do something. --- HeliosPlus/ShortcutItem.cs | 2 +- HeliosPlus/UIForms/ShortcutForm.Designer.cs | 8 +- HeliosPlus/UIForms/ShortcutForm.cs | 83 +++++++++------------ 3 files changed, 39 insertions(+), 54 deletions(-) diff --git a/HeliosPlus/ShortcutItem.cs b/HeliosPlus/ShortcutItem.cs index c973507..baacc5e 100644 --- a/HeliosPlus/ShortcutItem.cs +++ b/HeliosPlus/ShortcutItem.cs @@ -196,7 +196,7 @@ namespace HeliosPlus public bool GameArgumentsRequired { get; set; } = false; - public StartProgram[] StartPrograms { get; set; } + public List StartPrograms { get; set; } public string OriginalIconPath { get diff --git a/HeliosPlus/UIForms/ShortcutForm.Designer.cs b/HeliosPlus/UIForms/ShortcutForm.Designer.cs index 5d797a2..d78d3fb 100644 --- a/HeliosPlus/UIForms/ShortcutForm.Designer.cs +++ b/HeliosPlus/UIForms/ShortcutForm.Designer.cs @@ -334,7 +334,6 @@ namespace HeliosPlus.UIForms // // txt_start_program_args4 // - this.txt_start_program_args4.Enabled = false; this.txt_start_program_args4.Location = new System.Drawing.Point(397, 50); this.txt_start_program_args4.Name = "txt_start_program_args4"; this.txt_start_program_args4.Size = new System.Drawing.Size(540, 26); @@ -414,7 +413,6 @@ namespace HeliosPlus.UIForms // // txt_start_program_args3 // - this.txt_start_program_args3.Enabled = false; this.txt_start_program_args3.Location = new System.Drawing.Point(397, 50); this.txt_start_program_args3.Name = "txt_start_program_args3"; this.txt_start_program_args3.Size = new System.Drawing.Size(540, 26); @@ -494,7 +492,6 @@ namespace HeliosPlus.UIForms // // txt_start_program_args2 // - this.txt_start_program_args2.Enabled = false; this.txt_start_program_args2.Location = new System.Drawing.Point(397, 50); this.txt_start_program_args2.Name = "txt_start_program_args2"; this.txt_start_program_args2.Size = new System.Drawing.Size(540, 26); @@ -574,7 +571,6 @@ namespace HeliosPlus.UIForms // // txt_start_program_args1 // - this.txt_start_program_args1.Enabled = false; this.txt_start_program_args1.Location = new System.Drawing.Point(397, 50); this.txt_start_program_args1.Name = "txt_start_program_args1"; this.txt_start_program_args1.Size = new System.Drawing.Size(540, 26); @@ -986,9 +982,9 @@ namespace HeliosPlus.UIForms this.rb_switch_permanent.ForeColor = System.Drawing.Color.White; this.rb_switch_permanent.Location = new System.Drawing.Point(308, 131); this.rb_switch_permanent.Name = "rb_switch_permanent"; - this.rb_switch_permanent.Size = new System.Drawing.Size(388, 24); + this.rb_switch_permanent.Size = new System.Drawing.Size(508, 24); this.rb_switch_permanent.TabIndex = 10; - this.rb_switch_permanent.Text = "Keep using the Display Profile (permanent change)"; + this.rb_switch_permanent.Text = "Keep using the Display Profile after Game ends (permanent change)"; this.rb_switch_permanent.UseVisualStyleBackColor = true; this.rb_switch_permanent.CheckedChanged += new System.EventHandler(this.rb_switch_permanent_CheckedChanged); // diff --git a/HeliosPlus/UIForms/ShortcutForm.cs b/HeliosPlus/UIForms/ShortcutForm.cs index 76fba64..0ac9688 100644 --- a/HeliosPlus/UIForms/ShortcutForm.cs +++ b/HeliosPlus/UIForms/ShortcutForm.cs @@ -428,55 +428,44 @@ namespace HeliosPlus.UIForms // Update the profile to use _shortcutToEdit.ProfileToUse = _profileToUse; - StartProgram[] myStartPrograms = { }; - // Update the 4 programs to start - if (cb_start_program1.Checked) - { - StartProgram myStartProgram = new StartProgram(); - myStartProgram.Priority = 1; - myStartProgram.Executable = txt_start_program1.Text; - myStartProgram.Enabled = cb_start_program1.Checked; - myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args1.Checked; - myStartProgram.Arguments = txt_start_program_args1.Text; - myStartProgram.CloseOnFinish = cb_start_program_close1.Checked; - myStartPrograms.Append(myStartProgram); - } + List myStartPrograms = new List(); - if (cb_start_program2.Checked) - { - StartProgram myStartProgram = new StartProgram(); - myStartProgram.Priority = 2; - myStartProgram.Executable = txt_start_program2.Text; - myStartProgram.Enabled = cb_start_program2.Checked; - myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args2.Checked; - myStartProgram.Arguments = txt_start_program_args2.Text; - myStartProgram.CloseOnFinish = cb_start_program_close2.Checked; - myStartPrograms.Append(myStartProgram); - } + // Save the start program 1 + StartProgram myStartProgram = new StartProgram(); + myStartProgram.Priority = 1; + myStartProgram.Enabled = cb_start_program1.Checked; + myStartProgram.Executable = txt_start_program1.Text; + myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args1.Checked; + myStartProgram.Arguments = txt_start_program_args1.Text; + myStartProgram.CloseOnFinish = cb_start_program_close1.Checked; + myStartPrograms.Add(myStartProgram); - if (cb_start_program3.Checked) - { - StartProgram myStartProgram = new StartProgram(); - myStartProgram.Priority = 3; - myStartProgram.Executable = txt_start_program3.Text; - myStartProgram.Enabled = cb_start_program3.Checked; - myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args3.Checked; - myStartProgram.Arguments = txt_start_program_args3.Text; - myStartProgram.CloseOnFinish = cb_start_program_close3.Checked; - myStartPrograms.Append(myStartProgram); - } + myStartProgram = new StartProgram(); + myStartProgram.Priority = 2; + myStartProgram.Executable = txt_start_program2.Text; + myStartProgram.Enabled = cb_start_program2.Checked; + myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args2.Checked; + myStartProgram.Arguments = txt_start_program_args2.Text; + myStartProgram.CloseOnFinish = cb_start_program_close2.Checked; + myStartPrograms.Add(myStartProgram); - if (cb_start_program4.Checked) - { - StartProgram myStartProgram = new StartProgram(); - myStartProgram.Priority = 4; - myStartProgram.Executable = txt_start_program4.Text; - myStartProgram.Enabled = cb_start_program4.Checked; - myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args4.Checked; - myStartProgram.Arguments = txt_start_program_args4.Text; - myStartProgram.CloseOnFinish = cb_start_program_close4.Checked; - myStartPrograms.Append(myStartProgram); - } + myStartProgram = new StartProgram(); + myStartProgram.Priority = 3; + myStartProgram.Executable = txt_start_program3.Text; + myStartProgram.Enabled = cb_start_program3.Checked; + myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args3.Checked; + myStartProgram.Arguments = txt_start_program_args3.Text; + myStartProgram.CloseOnFinish = cb_start_program_close3.Checked; + myStartPrograms.Add(myStartProgram); + + myStartProgram = new StartProgram(); + myStartProgram.Priority = 4; + myStartProgram.Executable = txt_start_program4.Text; + myStartProgram.Enabled = cb_start_program4.Checked; + myStartProgram.ExecutableArgumentsRequired = cb_start_program_pass_args4.Checked; + myStartProgram.Arguments = txt_start_program_args4.Text; + myStartProgram.CloseOnFinish = cb_start_program_close4.Checked; + myStartPrograms.Add(myStartProgram); // Save the start programs to the shortcut _shortcutToEdit.StartPrograms = myStartPrograms; @@ -841,7 +830,7 @@ namespace HeliosPlus.UIForms // Set up the start programs - if (_shortcutToEdit.StartPrograms is StartProgram[] && _shortcutToEdit.StartPrograms.Length > 0) + if (_shortcutToEdit.StartPrograms is List && _shortcutToEdit.StartPrograms.Count > 0) { foreach (StartProgram myStartProgram in _shortcutToEdit.StartPrograms) {