Improve first-launch profile config UX

see a351dcc55
This commit is contained in:
YoshiRulz 2024-09-14 22:17:43 +10:00
parent 0c9f8169db
commit 362ffd147e
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
3 changed files with 9 additions and 4 deletions

View File

@ -83,6 +83,10 @@ namespace BizHawk.Client.Common
private readonly List<UIDisplay> _guiTextList = [ ];
private readonly List<UIDisplay> _ramWatchList = [ ];
/// <summary>Clears the queue used by <see cref="AddMessage"/>. You probably don't want to do this.</summary>
public void ClearRegularMessages()
=> _messages.Clear();
public void AddMessage(string message, int? duration = null)
=> _messages.Add(new() {
Message = message,

View File

@ -2147,7 +2147,7 @@ namespace BizHawk.Client.EmuHawk
this.ProfileFirstBootLabel.AutoToolTip = true;
this.ProfileFirstBootLabel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.ProfileFirstBootLabel.Text = "ProfileFirstBootLabel";
this.ProfileFirstBootLabel.ToolTipText = "Set up your profile before use";
this.ProfileFirstBootLabel.ToolTipText = "Open the setup/onboarding wizard";
this.ProfileFirstBootLabel.Visible = false;
this.ProfileFirstBootLabel.Click += new System.EventHandler(this.ProfileFirstBootLabel_Click);
//

View File

@ -1514,12 +1514,13 @@ namespace BizHawk.Client.EmuHawk
private void ProfileFirstBootLabel_Click(object sender, EventArgs e)
{
// We do not check if the user is actually setting a profile here.
// This is intentional.
using var profileForm = new ProfileConfig(Config, this);
this.ShowDialogWithTempMute(profileForm);
_ = this.ShowDialogWithTempMute(profileForm); // interpret Cancel as user acklowledgement (there are instructions for re-opening the dialog anyway)
Config.FirstBoot = false;
ProfileFirstBootLabel.Visible = false;
OSD.ClearRegularMessages();
AddOnScreenMessage("You can find that again at Config > Profiles", duration: 10/*seconds*/); // intentionally left off the ellipsis from the menu item's name as it could be misinterpreted as the message being truncated
AddOnScreenMessage("All done! Drag+drop a rom to start playing", duration: 10/*seconds*/);
}
private void LinkConnectStatusBarButton_Click(object sender, EventArgs e)