Compare commits

...

4 commits

12 changed files with 381 additions and 74 deletions

View file

@ -25067,6 +25067,56 @@
"zh_TW": "" "zh_TW": ""
} }
}, },
{
"ID": "SetupWizardKeysPageHelpText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Not sure how to get your keys?",
"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": "SetupWizardKeysPageSkipText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Skipped setting up keys as you already have a valid key installation and did not choose a folder to install from.\nClick '{0}' if you wish to reinstall your keys.",
"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": "SetupWizardFirmwarePageTitle", "ID": "SetupWizardFirmwarePageTitle",
"Translations": { "Translations": {
@ -25217,6 +25267,156 @@
"zh_TW": "" "zh_TW": ""
} }
}, },
{
"ID": "SetupWizardFirmwarePageInstallSuccessNotificationTitle",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Firmware installed",
"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": "SetupWizardFirmwarePageInstallSuccessNotificationText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Installed firmware version {0}.",
"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": "SetupWizardFirmwarePageInstallFailNotificationTitle",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Firmware not installed",
"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": "SetupWizardFirmwarePageInstallFailNotificationText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "It seems some error occurred when trying to install the firmware at path '{0}'.\nDid that folder contain a firmware dump?",
"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": "SetupWizardFirmwarePageHelpText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Not sure how to get your firmware off of your Switch?",
"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": "SetupWizardFirmwarePageSkipText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Skipped setting up firmware as you already have a valid firmware installation and did not choose a folder or file to install from.\nClick '{0}' if you wish to overwrite your firmware.",
"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": "SetupWizardGameDirsPageTitle", "ID": "SetupWizardGameDirsPageTitle",
"Translations": { "Translations": {
@ -25242,6 +25442,81 @@
"zh_TW": "" "zh_TW": ""
} }
}, },
{
"ID": "SetupWizardGameDirsPageDescription",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "{0} can be pointed at any number of folders to look for your games, updates, and DLC content.\nAt least one folder must be specified in game directories before continuing.",
"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": "SetupWizardGameDirsPageNoFoldersSelectedError",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "At least one folder for games must be selected; otherwise the UI will be empty.",
"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": "SetupWizardGameDirsPageHelpText",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Not sure how to get your games, updates, and/or DLC onto your PC?",
"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": "SetupWizardFinalPageTitle", "ID": "SetupWizardFinalPageTitle",
"Translations": { "Translations": {
@ -25316,6 +25591,31 @@
"zh_CN": "", "zh_CN": "",
"zh_TW": "" "zh_TW": ""
} }
},
{
"ID": "SetupWizardHelpLinkButton",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Click here to view a guide.",
"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": ""
}
} }
] ]
} }

View file

@ -38,6 +38,7 @@ namespace Ryujinx.Ava.Common.Locale
{ LocaleKeys.RyujinxConfirm, [RyujinxApp.FullAppName] }, { LocaleKeys.RyujinxConfirm, [RyujinxApp.FullAppName] },
{ LocaleKeys.RyujinxUpdater, [RyujinxApp.FullAppName] }, { LocaleKeys.RyujinxUpdater, [RyujinxApp.FullAppName] },
{ LocaleKeys.RyujinxRebooter, [RyujinxApp.FullAppName] }, { LocaleKeys.RyujinxRebooter, [RyujinxApp.FullAppName] },
{ LocaleKeys.SetupWizardGameDirsPageDescription, [RyujinxApp.FullAppName] },
{ LocaleKeys.CompatibilityListSearchBoxWatermarkWithCount, [CompatibilityDatabase.Entries.Length] }, { LocaleKeys.CompatibilityListSearchBoxWatermarkWithCount, [CompatibilityDatabase.Entries.Length] },
{ LocaleKeys.CompatibilityListTitle, [CompatibilityDatabase.Entries.Length] } { LocaleKeys.CompatibilityListTitle, [CompatibilityDatabase.Entries.Length] }
}); });

View file

@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:markup="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
xmlns:pages="clr-namespace:Ryujinx.Ava.UI.SetupWizard.Pages" xmlns:pages="clr-namespace:Ryujinx.Ava.UI.SetupWizard.Pages"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="pages:SetupFinishedPageContext" x:DataType="pages:SetupFinishedPageContext"
@ -18,7 +18,7 @@
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
CornerRadius="5" CornerRadius="5"
Background="{DynamicResource AppListBackgroundColor}"> Background="{DynamicResource AppListBackgroundColor}">
<TextBlock Margin="15" Text="{markup:Locale SetupWizardFinalPageDescription}" TextAlignment="Center" TextWrapping="Wrap" /> <TextBlock Margin="15" Text="{ext:Locale SetupWizardFinalPageDescription}" TextAlignment="Center" TextWrapping="Wrap" />
</Border> </Border>
<Button Grid.Row="1" <Button Grid.Row="1"
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
@ -30,7 +30,7 @@
Click="Button_OnClick" Click="Button_OnClick"
CornerRadius="5" CornerRadius="5"
Tag="https://discord.gg/PEuzjrFXUA" Tag="https://discord.gg/PEuzjrFXUA"
ToolTip.Tip="{markup:Locale AboutDiscordUrlTooltipMessage}"> ToolTip.Tip="{ext:Locale AboutDiscordUrlTooltipMessage}">
<StackPanel Orientation="Horizontal" Spacing="5"> <StackPanel Orientation="Horizontal" Spacing="5">
<Image Source="{Binding OwningWizard.DiscordLogo}" /> <Image Source="{Binding OwningWizard.DiscordLogo}" />
<TextBlock Text="Discord"/> <TextBlock Text="Discord"/>

View file

@ -2,22 +2,22 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:markup="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
xmlns:pages="clr-namespace:Ryujinx.Ava.UI.SetupWizard.Pages" xmlns:pages="clr-namespace:Ryujinx.Ava.UI.SetupWizard.Pages"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="pages:SetupFirmwarePageContext" x:DataType="pages:SetupFirmwarePageContext"
x:Class="Ryujinx.Ava.UI.SetupWizard.Pages.SetupFirmwarePage"> x:Class="Ryujinx.Ava.UI.SetupWizard.Pages.SetupFirmwarePage">
<StackPanel> <StackPanel>
<TextBlock Text="{markup:Locale SetupWizardFirmwarePageDescription}"/> <TextBlock Text="{ext:Locale SetupWizardFirmwarePageDescription}"/>
<Grid ColumnDefinitions="*" RowDefinitions="*,Auto"> <Grid ColumnDefinitions="*" RowDefinitions="*,Auto">
<TextBox Name="FirmwarePathField" Margin="0, 10, 0, 5" Text="{Binding FirmwareSourcePath}" IsReadOnly="True" /> <TextBox Name="FirmwarePathField" Margin="0, 10, 0, 5" Text="{Binding FirmwareSourcePath}" IsReadOnly="True" />
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="3.5"> <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="3.5">
<Button <Button
Content="{markup:Locale SetupWizardFirmwarePageFolderBrowse}" Content="{ext:Locale SetupWizardFirmwarePageFolderBrowse}"
Command="{Binding BrowseFolderCommand}" Command="{Binding BrowseFolderCommand}"
CommandParameter="{Binding #FirmwarePathField}"/> CommandParameter="{Binding #FirmwarePathField}"/>
<Button <Button
Content="{markup:Locale SetupWizardFirmwarePageFileBrowse}" Content="{ext:Locale SetupWizardFirmwarePageFileBrowse}"
Command="{Binding BrowseFileCommand}" Command="{Binding BrowseFileCommand}"
CommandParameter="{Binding #FirmwarePathField}"/> CommandParameter="{Binding #FirmwarePathField}"/>
</StackPanel> </StackPanel>

View file

@ -19,13 +19,14 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
{ {
public partial class SetupFirmwarePageContext() : SetupWizardPageContext(LocaleKeys.SetupWizardFirmwarePageTitle) public partial class SetupFirmwarePageContext() : SetupWizardPageContext(LocaleKeys.SetupWizardFirmwarePageTitle)
{ {
[ObservableProperty] [ObservableProperty] public partial string FirmwareSourcePath { get; set; }
public partial string FirmwareSourcePath { get; set; }
[RelayCommand] [RelayCommand]
private static async Task BrowseFile(TextBox tb) private static async Task BrowseFile(TextBox tb)
{ {
Optional<IStorageFile> result = await RyujinxApp.MainWindow.ViewModel.StorageProvider.OpenSingleFilePickerAsync(new FilePickerOpenOptions Optional<IStorageFile> result =
await RyujinxApp.MainWindow.ViewModel.StorageProvider.OpenSingleFilePickerAsync(
new FilePickerOpenOptions
{ {
Title = LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageFilePopupTitle], Title = LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageFilePopupTitle],
FileTypeFilter = new List<FilePickerFileType> FileTypeFilter = new List<FilePickerFileType>
@ -60,7 +61,9 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
[RelayCommand] [RelayCommand]
private static async Task BrowseFolder(TextBox tb) private static async Task BrowseFolder(TextBox tb)
{ {
Optional<IStorageFolder> result = await RyujinxApp.MainWindow.ViewModel.StorageProvider.OpenSingleFolderPickerAsync(new FolderPickerOpenOptions Optional<IStorageFolder> result =
await RyujinxApp.MainWindow.ViewModel.StorageProvider.OpenSingleFolderPickerAsync(
new FolderPickerOpenOptions
{ {
Title = LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageFolderPopupTitle] Title = LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageFolderPopupTitle]
}); });
@ -81,14 +84,14 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
grid.Children.Add(new TextBlock grid.Children.Add(new TextBlock
{ {
Text = "Not sure how to get your firmware off of your Switch?", Text = LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageHelpText],
HorizontalAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center,
GridRow = 0 GridRow = 0
}); });
grid.Children.Add(new HyperlinkButton grid.Children.Add(new HyperlinkButton
{ {
Content = "Click here to view a guide.", Content = LocaleManager.Instance[LocaleKeys.SetupWizardHelpLinkButton],
NavigateUri = new Uri(SharedConstants.DumpFirmwareWikiUrl), NavigateUri = new Uri(SharedConstants.DumpFirmwareWikiUrl),
HorizontalAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center,
GridRow = 1 GridRow = 1
@ -102,8 +105,12 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
if (string.IsNullOrEmpty(FirmwareSourcePath) && RyujinxSetupWizard.HasFirmware) if (string.IsNullOrEmpty(FirmwareSourcePath) && RyujinxSetupWizard.HasFirmware)
{ {
NotificationManager.Information( NotificationManager.Information(
title: LocaleManager.Instance[LocaleKeys.DialogConfirmationTitle], title: LocaleManager.Instance[LocaleKeys.RyujinxInfo],
"Skipped setting up firmware as you already have a valid firmware installation and did not choose a folder or file to install from.\n\nClick 'Back' if you wish to overwrite your firmware."); text: LocaleManager.GetFormatted(
LocaleKeys.SetupWizardFirmwarePageSkipText,
LocaleManager.Instance[LocaleKeys.SetupWizardActionBack]
)
);
return Result.Success; // This handles the user selecting no file/dir and just hitting Next. return Result.Success; // This handles the user selecting no file/dir and just hitting Next.
} }
@ -117,18 +124,24 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
if (installedFwVer != null) if (installedFwVer != null)
{ {
NotificationManager.Information( NotificationManager.Information(
"Firmware installed", LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageInstallSuccessNotificationTitle],
$"Installed firmware version {installedFwVer.VersionString}." LocaleManager.GetFormatted(
LocaleKeys.SetupWizardFirmwarePageInstallSuccessNotificationTitle,
installedFwVer.VersionString
)
); );
} }
else else
{ {
NotificationManager.Error( NotificationManager.Error(
"Firmware not installed", LocaleManager.Instance[LocaleKeys.SetupWizardFirmwarePageInstallFailNotificationTitle],
$"It seems some error occurred when trying to install the firmware at path '{FirmwareSourcePath}'." + LocaleManager.GetFormatted(
"\nDid that folder contain a firmware dump?" LocaleKeys.SetupWizardFirmwarePageInstallFailNotificationText,
FirmwareSourcePath
)
); );
} }
RyujinxApp.MainWindow.ViewModel.RefreshFirmwareStatus(installedFwVer, allowNullVersion: true); RyujinxApp.MainWindow.ViewModel.RefreshFirmwareStatus(installedFwVer, allowNullVersion: true);
// Purge Applet Cache. // Purge Applet Cache.

View file

@ -11,8 +11,8 @@
Margin="10" Margin="10"
Spacing="10" Spacing="10"
Orientation="Vertical" HorizontalAlignment="Stretch"> Orientation="Vertical" HorizontalAlignment="Stretch">
<TextBlock Foreground="{DynamicResource SecondaryTextColor}" Text="{ext:Locale SetupWizardGameDirsPageDescription}" />
<TextBlock Classes="h1" Text="{ext:Locale SettingsTabGeneralGameDirectories}" /> <TextBlock Classes="h1" Text="{ext:Locale SettingsTabGeneralGameDirectories}" />
<StackPanel <StackPanel
Margin="10,0,0,0" Margin="10,0,0,0"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"

View file

@ -27,8 +27,8 @@ namespace Ryujinx.UI.SetupWizard.Pages
{ {
if (GameDirs.Count is 0) if (GameDirs.Count is 0)
{ {
NotificationManager.Error("At least one folder for games must be selected; otherwise the UI will be empty."); NotificationManager.Error(LocaleManager.Instance[LocaleKeys.SetupWizardGameDirsPageNoFoldersSelectedError]);
return Result.Failure(RetryError.Shared); return Result.Fail;
} }
ConfigurationState.Instance.UI.GameDirs.Value = GameDirs.ToList(); ConfigurationState.Instance.UI.GameDirs.Value = GameDirs.ToList();
@ -49,14 +49,14 @@ namespace Ryujinx.UI.SetupWizard.Pages
grid.Children.Add(new TextBlock grid.Children.Add(new TextBlock
{ {
Text = "Not sure how to get your games, updates, and/or DLC onto your PC?", Text = LocaleManager.Instance[LocaleKeys.SetupWizardGameDirsPageHelpText],
HorizontalAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center,
GridRow = 0 GridRow = 0
}); });
grid.Children.Add(new HyperlinkButton grid.Children.Add(new HyperlinkButton
{ {
Content = "Click here to view a guide.", Content = LocaleManager.Instance[LocaleKeys.SetupWizardHelpLinkButton],
HorizontalAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center,
NavigateUri = new Uri(SharedConstants.DumpContentWikiUrl), NavigateUri = new Uri(SharedConstants.DumpContentWikiUrl),
GridRow = 1 GridRow = 1
@ -65,9 +65,4 @@ namespace Ryujinx.UI.SetupWizard.Pages
return grid; return grid;
} }
} }
public struct RetryError : IErrorState
{
public static readonly RetryError Shared = new();
}
} }

View file

@ -3,12 +3,12 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pages="clr-namespace:Ryujinx.Ava.UI.SetupWizard.Pages" xmlns:pages="clr-namespace:Ryujinx.Ava.UI.SetupWizard.Pages"
xmlns:markup="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Ryujinx.Ava.UI.SetupWizard.Pages.SetupKeysPage" x:Class="Ryujinx.Ava.UI.SetupWizard.Pages.SetupKeysPage"
x:DataType="pages:SetupKeysPageContext"> x:DataType="pages:SetupKeysPageContext">
<StackPanel> <StackPanel>
<TextBlock Text="{markup:Locale SetupWizardKeysPageDescription}" Margin="0,0,0,10"/> <TextBlock Text="{ext:Locale SetupWizardKeysPageDescription}" Margin="0,0,0,10"/>
<Grid ColumnDefinitions="*,Auto"> <Grid ColumnDefinitions="*,Auto">
<TextBox Name="KeysFolderPathField" Text="{Binding KeysFolderPath}" IsReadOnly="True" /> <TextBox Name="KeysFolderPathField" Text="{Binding KeysFolderPath}" IsReadOnly="True" />
<Button Grid.Column="1" <Button Grid.Column="1"

View file

@ -31,14 +31,14 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
grid.Children.Add(new TextBlock grid.Children.Add(new TextBlock
{ {
Text = "Not sure how to get your keys?", Text = LocaleManager.Instance[LocaleKeys.SetupWizardKeysPageHelpText],
HorizontalAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center,
GridRow = 0 GridRow = 0
}); });
grid.Children.Add(new HyperlinkButton grid.Children.Add(new HyperlinkButton
{ {
Content = "Click here to view a guide.", Content = LocaleManager.Instance[LocaleKeys.SetupWizardHelpLinkButton],
HorizontalAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center,
NavigateUri = new Uri(SharedConstants.DumpKeysWikiUrl), NavigateUri = new Uri(SharedConstants.DumpKeysWikiUrl),
GridRow = 1 GridRow = 1
@ -70,8 +70,11 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages
if (string.IsNullOrEmpty(KeysFolderPath) && RyujinxApp.MainWindow.VirtualFileSystem.HasKeySet) if (string.IsNullOrEmpty(KeysFolderPath) && RyujinxApp.MainWindow.VirtualFileSystem.HasKeySet)
{ {
NotificationManager.Information( NotificationManager.Information(
title: LocaleManager.Instance[LocaleKeys.DialogConfirmationTitle], title: LocaleManager.Instance[LocaleKeys.RyujinxInfo],
"Skipped setting up keys as you already have a valid key installation and did not choose a folder to install from.\n\nClick 'Back' if you wish to reinstall your keys."); text: LocaleManager.GetFormatted(
LocaleKeys.SetupWizardKeysPageSkipText,
LocaleManager.Instance[LocaleKeys.SetupWizardActionBack]
));
return Result.Success; // This handles the user selecting no folder and just hitting Next. return Result.Success; // This handles the user selecting no folder and just hitting Next.
} }

View file

@ -68,12 +68,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
if (!result) if (!result)
return false; return false;
var res = gdContext.CompleteStep(); if (!gdContext.CompleteStep())
if (res.IsOf<RetryError>())
return false;
if (!res)
goto Retry; goto Retry;
return true; return true;

View file

@ -62,7 +62,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
// Fuck it, weird window height hack to do it instead. // Fuck it, weird window height hack to do it instead.
// 120 is not exact, just a random number. Looks fine though. // 120 is not exact, just a random number. Looks fine though.
NotificationPosition.TopCenter, NotificationPosition.TopCenter,
margin: new Thickness(0, _window.Height - 120, 0, 0) margin: new Thickness(0, _window.Height - 135, 0, 0)
); );
RyujinxSetupWizardWindow.IsOpen = true; RyujinxSetupWizardWindow.IsOpen = true;

View file

@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:markup="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
xmlns:windows="clr-namespace:Ryujinx.Ava.UI.Windows" xmlns:windows="clr-namespace:Ryujinx.Ava.UI.Windows"
xmlns:setupWizard="clr-namespace:Ryujinx.Ava.UI.SetupWizard" xmlns:setupWizard="clr-namespace:Ryujinx.Ava.UI.SetupWizard"
xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls" xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
@ -10,10 +10,10 @@
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Ryujinx.Ava.UI.SetupWizard.RyujinxSetupWizardWindow" x:Class="Ryujinx.Ava.UI.SetupWizard.RyujinxSetupWizardWindow"
x:DataType="setupWizard:RyujinxSetupWizard" x:DataType="setupWizard:RyujinxSetupWizard"
Title="{markup:Locale SetupWizardFirstPageTitle}"> Title="{ext:Locale SetupWizardFirstPageTitle}">
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" RowDefinitions="Auto,*"> <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" RowDefinitions="Auto,*">
<Grid Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Name="FlushControls"> <Grid Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Name="FlushControls">
<controls:RyujinxLogo ToolTip.Tip="{markup:Locale SetupWizardFirstPageTitle}"/> <controls:RyujinxLogo ToolTip.Tip="{ext:Locale SetupWizardFirstPageTitle}"/>
</Grid> </Grid>
<ContentPresenter Grid.Row="1" Name="WizardPresenter"/> <ContentPresenter Grid.Row="1" Name="WizardPresenter"/>
</Grid> </Grid>