Fixing default profile selection in shortcut form

This commit is contained in:
Terry MacDonald 2020-10-11 17:04:36 +13:00
parent 959bfe62aa
commit b7bdefa705
2 changed files with 79 additions and 66 deletions

View File

@ -250,6 +250,7 @@ namespace HeliosPlus.UIForms
this.ilv_saved_profiles.TabIndex = 24; this.ilv_saved_profiles.TabIndex = 24;
this.ilv_saved_profiles.UseWIC = true; this.ilv_saved_profiles.UseWIC = true;
this.ilv_saved_profiles.View = Manina.Windows.Forms.View.HorizontalStrip; this.ilv_saved_profiles.View = Manina.Windows.Forms.View.HorizontalStrip;
this.ilv_saved_profiles.ItemClick += new Manina.Windows.Forms.ItemClickEventHandler(this.ilv_saved_profiles_ItemClick);
// //
// dv_profile // dv_profile
// //
@ -300,7 +301,7 @@ namespace HeliosPlus.UIForms
// //
this.txt_start_program4.Location = new System.Drawing.Point(300, 11); this.txt_start_program4.Location = new System.Drawing.Point(300, 11);
this.txt_start_program4.Name = "txt_start_program4"; this.txt_start_program4.Name = "txt_start_program4";
this.txt_start_program4.Size = new System.Drawing.Size(416, 26); this.txt_start_program4.Size = new System.Drawing.Size(535, 26);
this.txt_start_program4.TabIndex = 17; this.txt_start_program4.TabIndex = 17;
// //
// cb_start_program_close4 // cb_start_program_close4
@ -319,7 +320,7 @@ namespace HeliosPlus.UIForms
// //
this.btn_start_program4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btn_start_program4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_start_program4.ForeColor = System.Drawing.Color.White; this.btn_start_program4.ForeColor = System.Drawing.Color.White;
this.btn_start_program4.Location = new System.Drawing.Point(722, 10); this.btn_start_program4.Location = new System.Drawing.Point(851, 10);
this.btn_start_program4.Name = "btn_start_program4"; this.btn_start_program4.Name = "btn_start_program4";
this.btn_start_program4.Size = new System.Drawing.Size(85, 27); this.btn_start_program4.Size = new System.Drawing.Size(85, 27);
this.btn_start_program4.TabIndex = 15; this.btn_start_program4.TabIndex = 15;
@ -374,7 +375,7 @@ namespace HeliosPlus.UIForms
// //
this.txt_start_program3.Location = new System.Drawing.Point(300, 11); this.txt_start_program3.Location = new System.Drawing.Point(300, 11);
this.txt_start_program3.Name = "txt_start_program3"; this.txt_start_program3.Name = "txt_start_program3";
this.txt_start_program3.Size = new System.Drawing.Size(416, 26); this.txt_start_program3.Size = new System.Drawing.Size(535, 26);
this.txt_start_program3.TabIndex = 17; this.txt_start_program3.TabIndex = 17;
// //
// cb_start_program_close3 // cb_start_program_close3
@ -393,7 +394,7 @@ namespace HeliosPlus.UIForms
// //
this.btn_start_program3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btn_start_program3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_start_program3.ForeColor = System.Drawing.Color.White; this.btn_start_program3.ForeColor = System.Drawing.Color.White;
this.btn_start_program3.Location = new System.Drawing.Point(722, 10); this.btn_start_program3.Location = new System.Drawing.Point(851, 10);
this.btn_start_program3.Name = "btn_start_program3"; this.btn_start_program3.Name = "btn_start_program3";
this.btn_start_program3.Size = new System.Drawing.Size(85, 27); this.btn_start_program3.Size = new System.Drawing.Size(85, 27);
this.btn_start_program3.TabIndex = 15; this.btn_start_program3.TabIndex = 15;
@ -448,7 +449,7 @@ namespace HeliosPlus.UIForms
// //
this.txt_start_program2.Location = new System.Drawing.Point(301, 11); this.txt_start_program2.Location = new System.Drawing.Point(301, 11);
this.txt_start_program2.Name = "txt_start_program2"; this.txt_start_program2.Name = "txt_start_program2";
this.txt_start_program2.Size = new System.Drawing.Size(416, 26); this.txt_start_program2.Size = new System.Drawing.Size(534, 26);
this.txt_start_program2.TabIndex = 17; this.txt_start_program2.TabIndex = 17;
// //
// cb_start_program_close2 // cb_start_program_close2
@ -467,7 +468,7 @@ namespace HeliosPlus.UIForms
// //
this.btn_start_program2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btn_start_program2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_start_program2.ForeColor = System.Drawing.Color.White; this.btn_start_program2.ForeColor = System.Drawing.Color.White;
this.btn_start_program2.Location = new System.Drawing.Point(723, 10); this.btn_start_program2.Location = new System.Drawing.Point(852, 10);
this.btn_start_program2.Name = "btn_start_program2"; this.btn_start_program2.Name = "btn_start_program2";
this.btn_start_program2.Size = new System.Drawing.Size(85, 27); this.btn_start_program2.Size = new System.Drawing.Size(85, 27);
this.btn_start_program2.TabIndex = 15; this.btn_start_program2.TabIndex = 15;
@ -522,7 +523,7 @@ namespace HeliosPlus.UIForms
// //
this.txt_start_program1.Location = new System.Drawing.Point(300, 11); this.txt_start_program1.Location = new System.Drawing.Point(300, 11);
this.txt_start_program1.Name = "txt_start_program1"; this.txt_start_program1.Name = "txt_start_program1";
this.txt_start_program1.Size = new System.Drawing.Size(416, 26); this.txt_start_program1.Size = new System.Drawing.Size(535, 26);
this.txt_start_program1.TabIndex = 17; this.txt_start_program1.TabIndex = 17;
// //
// cb_start_program_close1 // cb_start_program_close1
@ -541,7 +542,7 @@ namespace HeliosPlus.UIForms
// //
this.btn_start_program1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btn_start_program1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_start_program1.ForeColor = System.Drawing.Color.White; this.btn_start_program1.ForeColor = System.Drawing.Color.White;
this.btn_start_program1.Location = new System.Drawing.Point(722, 10); this.btn_start_program1.Location = new System.Drawing.Point(851, 10);
this.btn_start_program1.Name = "btn_start_program1"; this.btn_start_program1.Name = "btn_start_program1";
this.btn_start_program1.Size = new System.Drawing.Size(85, 27); this.btn_start_program1.Size = new System.Drawing.Size(85, 27);
this.btn_start_program1.TabIndex = 15; this.btn_start_program1.TabIndex = 15;

View File

@ -604,6 +604,7 @@ namespace HeliosPlus.UIForms
{ {
matchingImageListViewItems.First().Selected = true; matchingImageListViewItems.First().Selected = true;
matchingImageListViewItems.First().Focused = true; matchingImageListViewItems.First().Focused = true;
matchingImageListViewItems.First().Enabled = true;
} }
} }
@ -611,15 +612,50 @@ namespace HeliosPlus.UIForms
{ {
// Load all the profiles to prepare things // Load all the profiles to prepare things
bool foundCurrentProfileInLoadedProfiles = false; bool foundChosenProfileInLoadedProfiles = false;
ProfileItem chosenProfile = null;
if (_shortcutToEdit is ShortcutItem && _shortcutToEdit.ProfileToUse is ProfileItem)
{
foreach (ProfileItem loadedProfile in ProfileRepository.AllProfiles) foreach (ProfileItem loadedProfile in ProfileRepository.AllProfiles)
{ {
if (ProfileRepository.IsActiveProfile(loadedProfile)) if (_shortcutToEdit.ProfileToUse.Equals(loadedProfile))
{ {
// We have already saved the selected profile! // We have loaded the profile used last time
// so we need to show the selected profile // so we need to show the selected profile in the UI
ChangeSelectedProfile(loadedProfile); chosenProfile = loadedProfile;
foundCurrentProfileInLoadedProfiles = true; foundChosenProfileInLoadedProfiles = true;
// If the profile is the same, but the user has renamed the profile
// since the shortcut was last created, then we need to tell the user
if (!loadedProfile.Name.Equals(_shortcutToEdit.ProfileToUse.Name))
{
MessageBox.Show(
@"The Display Profile used by this Shortcut still exists, but it's changed it's name. We've updated the shortcut's name to reflect this change.",
@"Display Profile name changed",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
}
}
}
// If we get to the end of the loaded profiles and haven't
// found a matching profile, then we need to show the current profile
// that we're running now
if (!foundChosenProfileInLoadedProfiles && ProfileRepository.ProfileCount > 0)
{
foreach (ProfileItem loadedProfile in ProfileRepository.AllProfiles)
{
if (ProfileRepository.CurrentProfile.Equals(loadedProfile))
{
// We have loaded the profile used last time
// so we need to show the selected profile in the UI
chosenProfile = loadedProfile;
foundChosenProfileInLoadedProfiles = true;
// If the profile is the same, but the user has renamed the profile // If the profile is the same, but the user has renamed the profile
// since the shortcut was last created, then we need to tell the user // since the shortcut was last created, then we need to tell the user
@ -636,13 +672,7 @@ namespace HeliosPlus.UIForms
} }
} }
}
// If we get to the end of the loaded profiles and haven't
// found a matching profile, then we need to show the first
// Profile
if (!foundCurrentProfileInLoadedProfiles && ProfileRepository.ProfileCount > 0)
ChangeSelectedProfile(ProfileRepository.AllProfiles[0]);
// Start finding the games and loading the Games ListView // Start finding the games and loading the Games ListView
foreach (var game in SteamLibrary.AllInstalledGames.OrderBy(game => game.GameName)) foreach (var game in SteamLibrary.AllInstalledGames.OrderBy(game => game.GameName))
@ -758,6 +788,8 @@ namespace HeliosPlus.UIForms
// Refresh the Shortcut UI // Refresh the Shortcut UI
RefreshShortcutUI(); RefreshShortcutUI();
ChangeSelectedProfile(chosenProfile);
RefreshImageListView(chosenProfile);
_loadedShortcut = true; _loadedShortcut = true;
@ -845,16 +877,17 @@ namespace HeliosPlus.UIForms
private void ilv_saved_profiles_ItemClick(object sender, ItemClickEventArgs e) private void ilv_saved_profiles_ItemClick(object sender, ItemClickEventArgs e)
{ {
foreach (ProfileItem loadedProfile in ProfileRepository.AllProfiles) foreach (ProfileItem savedProfile in ProfileRepository.AllProfiles)
{ {
if (loadedProfile.Name == e.Item.Text) if (savedProfile.Name == e.Item.Text)
{ {
ChangeSelectedProfile(loadedProfile); ChangeSelectedProfile(savedProfile);
if (_loadedShortcut)
_isUnsaved = true;
} }
} }
suggestShortcutName();
enableSaveButtonIfValid();
} }
private void ChangeSelectedProfile(ProfileItem profile) private void ChangeSelectedProfile(ProfileItem profile)
@ -871,21 +904,10 @@ namespace HeliosPlus.UIForms
lbl_profile_shown.Text = _profileToUse.Name; lbl_profile_shown.Text = _profileToUse.Name;
if (_profileToUse.Equals(ProfileRepository.CurrentProfile)) if (_profileToUse.Equals(ProfileRepository.CurrentProfile))
{
lbl_profile_shown_subtitle.Text = "(Current Display Profile in use)"; lbl_profile_shown_subtitle.Text = "(Current Display Profile in use)";
}
else else
{
if (!_profileToUse.IsPossible)
{
lbl_profile_shown_subtitle.Text = "(Display Profile is not valid so cannot be used)";
}
else
{
lbl_profile_shown_subtitle.Text = ""; lbl_profile_shown_subtitle.Text = "";
}
}
// Refresh the image list view // Refresh the image list view
RefreshImageListView(profile); RefreshImageListView(profile);
@ -906,7 +928,6 @@ namespace HeliosPlus.UIForms
ilv_saved_profiles.SuspendLayout(); ilv_saved_profiles.SuspendLayout();
ImageListViewItem newItem = null; ImageListViewItem newItem = null;
bool foundCurrentProfileInLoadedProfiles = false;
foreach (ProfileItem loadedProfile in ProfileRepository.AllProfiles) foreach (ProfileItem loadedProfile in ProfileRepository.AllProfiles)
{ {
bool thisLoadedProfileIsAlreadyHere = (from item in ilv_saved_profiles.Items where item.Text == loadedProfile.Name select item.Text).Any(); bool thisLoadedProfileIsAlreadyHere = (from item in ilv_saved_profiles.Items where item.Text == loadedProfile.Name select item.Text).Any();
@ -922,17 +943,6 @@ namespace HeliosPlus.UIForms
} }
// If we get to the end of the loaded profiles and haven't
// found a matching profile, then we need to show the current
// Profile
if (!foundCurrentProfileInLoadedProfiles)
ChangeSelectedProfile(ProfileRepository.CurrentProfile);
// Check if we were loading a profile to edit
// If so, select that instead of all that other stuff above!
//if (_shortcutToEdit != null)
// ChangeSelectedProfile(_shortcutToEdit.ProfileToUse);*/
// Restart updating the saved_profiles listview // Restart updating the saved_profiles listview
ilv_saved_profiles.ResumeLayout(); ilv_saved_profiles.ResumeLayout();
} }
@ -1068,16 +1078,14 @@ namespace HeliosPlus.UIForms
if (_loadedShortcut) if (_loadedShortcut)
_isUnsaved = true; _isUnsaved = true;
if (cb_autosuggest.Checked) if (cb_autosuggest.Checked)
{
_saveNameAutomatic = true; _saveNameAutomatic = true;
suggestShortcutName();
}
else else
_saveNameAutomatic = false; _saveNameAutomatic = false;
} }
private void btn_start_program1_Click(object sender, EventArgs e)
{
btn_start_program1.Text = get_exe_file();
}
private string get_exe_file() private string get_exe_file()
{ {
string textToReturn = ""; string textToReturn = "";
@ -1099,20 +1107,24 @@ namespace HeliosPlus.UIForms
} }
return textToReturn; return textToReturn;
} }
private void btn_start_program1_Click(object sender, EventArgs e)
{
txt_start_program1.Text = get_exe_file();
}
private void btn_start_program2_Click(object sender, EventArgs e) private void btn_start_program2_Click(object sender, EventArgs e)
{ {
btn_start_program2.Text = get_exe_file(); txt_start_program2.Text = get_exe_file();
} }
private void btn_start_program3_Click(object sender, EventArgs e) private void btn_start_program3_Click(object sender, EventArgs e)
{ {
btn_start_program3.Text = get_exe_file(); txt_start_program3.Text = get_exe_file();
} }
private void btn_start_program4_Click(object sender, EventArgs e) private void btn_start_program4_Click(object sender, EventArgs e)
{ {
btn_start_program4.Text = get_exe_file(); txt_start_program4.Text = get_exe_file();
} }
} }
} }