add a setup wizard opener in the help dropdown in the menu bar, that also respects CanShowSetupWizard

This commit is contained in:
GreemDev 2025-11-22 23:23:30 -06:00
parent c4873ca06b
commit 3a0f92fbe5
6 changed files with 43 additions and 9 deletions

View file

@ -24842,6 +24842,31 @@
"zh_TW": "你只能加入與 LDN 網路密碼片語 (passphrase) 設定相同的遊戲。"
}
},
{
"ID": "SetupWizardOpen",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Setup Wizard",
"es_ES": "",
"fr_FR": "",
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_TW": ""
}
},
{
"ID": "SetupWizardActionBack",
"Translations": {

View file

@ -25,7 +25,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
public override async Task Start()
{
NotificationHelper.SetNotificationManager(wizardWindow);
RyujinxSetupWizardWindow.IsUsingSetupWizard = true;
RyujinxSetupWizardWindow.IsOpen = true;
Start:
await FirstPage();
@ -40,7 +40,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
Return:
NotificationHelper.SetNotificationManager(_mainWindow);
wizardWindow.Close();
RyujinxSetupWizardWindow.IsUsingSetupWizard = false;
RyujinxSetupWizardWindow.IsOpen = false;
if (_configWasModified)
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.GlobalConfigurationPath);

View file

@ -12,7 +12,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
{
public partial class RyujinxSetupWizardWindow : StyleableAppWindow
{
public static bool IsUsingSetupWizard { get; set; }
public static bool IsOpen { get; set; }
public RyujinxSetupWizardWindow() : base(useCustomTitleBar: true)
{
@ -26,6 +26,9 @@ namespace Ryujinx.Ava.UI.SetupWizard
public static Task ShowAsync(Window owner = null)
{
if (!CanShowSetupWizard)
return Task.CompletedTask;
Task windowTask = ShowAsync(
CreateWindow(out BaseSetupWizard wiz),
owner ?? RyujinxApp.MainWindow
@ -49,7 +52,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
public static bool DisableSetupWizard()
{
if (!CanShowSetupWizard)
return false; //cannot disable; file already doesn't exist, so it's disabled.
return false; //cannot disable; file exists, so it's already disabled.
string disableFile = Path.Combine(AppDataManager.BaseDirPath, ".DoNotShowSetupWizard");
@ -69,7 +72,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
public static bool EnableSetupWizard()
{
if (CanShowSetupWizard)
return false; //cannot enable; file already exists, so it's enabled.
return false; //cannot enable; file does not exist, so it's already enabled.
string disableFile = Path.Combine(AppDataManager.BaseDirPath, ".DoNotShowSetupWizard");

View file

@ -8,6 +8,7 @@
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
xmlns:common="clr-namespace:Ryujinx.Common;assembly=Ryujinx.Common"
xmlns:setupWizard="clr-namespace:Ryujinx.Ava.UI.SetupWizard"
x:DataType="viewModels:MainWindowViewModel"
x:Class="Ryujinx.Ava.UI.Views.Main.MainMenuBarView">
<Design.DataContext>
@ -244,6 +245,11 @@
Header="{ext:Locale LdnGameListOpen}"
Icon="{ext:Icon fa-solid fa-people-group}"
IsEnabled="{Binding IsRyuLdnEnabled}"/>
<MenuItem
Name="SetupWizardMenuItem"
Header="{ext:Locale SetupWizardOpen}"
Icon="{ext:Icon fa-solid fa-wand-sparkles}"
IsEnabled="{x:Static setupWizard:RyujinxSetupWizardWindow.CanShowSetupWizard}"/>
<Separator />
<MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarHelpFaqAndGuides}" Icon="{ext:Icon fa-solid fa-question}" >
<MenuItem

View file

@ -10,6 +10,7 @@ using Ryujinx.Ava.Systems.AppLibrary;
using Ryujinx.Ava.Systems.Configuration;
using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.SetupWizard;
using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Ava.UI.Views.Dialog;
using Ryujinx.Ava.UI.Windows;
@ -50,6 +51,7 @@ namespace Ryujinx.Ava.UI.Views.Main
AboutWindowMenuItem.Command = Commands.Create(AboutView.Show);
CompatibilityListMenuItem.Command = Commands.Create(() => CompatibilityListWindow.Show());
LdnGameListMenuItem.Command = Commands.Create(() => LdnGamesListWindow.Show());
SetupWizardMenuItem.Command = Commands.Create(() => RyujinxSetupWizardWindow.ShowAsync());
UpdateMenuItem.Command = MainWindowViewModel.UpdateCommand;

View file

@ -144,10 +144,8 @@ namespace Ryujinx.Ava.UI.Windows
{
await ShowIntelMacWarningAsync();
if (Program.IsFirstStart && RyujinxSetupWizardWindow.CanShowSetupWizard)
{
if (Program.IsFirstStart)
await RyujinxSetupWizardWindow.ShowAsync(this);
}
});
if (CommandLineState.FirmwareToInstallPathArg.TryGet(out FilePath fwPath))
@ -412,7 +410,7 @@ namespace Ryujinx.Ava.UI.Windows
}
}
}
else if (!RyujinxSetupWizardWindow.IsUsingSetupWizard)
else if (!RyujinxSetupWizardWindow.IsOpen)
{
ShowKeyErrorOnLoad = false;