Basic custom settings functionality

Co-authored-by: KeatonTheBot <keaton@ryujinx.app>
This commit is contained in:
blackfa765
2026-05-25 12:12:09 -05:00
committed by KeatonTheBot
co-authored by KeatonTheBot
parent 74d6b310b8
commit a94c18bc0a
45 changed files with 1683 additions and 332 deletions
@@ -103,6 +103,23 @@ namespace Ryujinx.Ava.UI.Controls
}
}
public async void OpenCustomSettingsManager_Click(object sender, RoutedEventArgs args)
{
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
if (viewModel?.SelectedApplication != null)
{
await new CustomSettingsWindow(
viewModel.VirtualFileSystem,
viewModel.SelectedApplication.IdString,
viewModel.SelectedApplication.Name,
viewModel.SelectedApplication.Icon,
viewModel.SelectedApplication.Path).ShowDialog(viewModel.TopLevel as Window);
viewModel.RefreshView();
}
}
public async void OpenCheatManager_Click(object sender, RoutedEventArgs args)
{
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
@@ -157,6 +174,54 @@ namespace Ryujinx.Ava.UI.Controls
}
}
public async void ManageCustomSettings_Click(object sender, RoutedEventArgs args)
{
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
if (viewModel?.SelectedApplication != null)
{
await new CustomSettingsWindow(
viewModel.VirtualFileSystem,
viewModel.SelectedApplication.IdString,
viewModel.SelectedApplication.Name,
viewModel.SelectedApplication.Icon,
viewModel.SelectedApplication.Path).ShowDialog(viewModel.TopLevel as Window);
}
}
public async void DeleteCustomSettings_Click(object sender, RoutedEventArgs args)
{
if (sender is not MenuItem { DataContext: MainWindowViewModel { SelectedApplication: not null } viewModel })
return;
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
LocaleManager.Instance[LocaleKeys.DialogWarning],
LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogCustomSettingsDeleteMessage, viewModel.SelectedApplication.Name)
);
if (result == UserResult.Yes)
{
CustomSettingsHelper.DeleteCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(viewModel.SelectedApplication.Id));
}
}
public void OpenCustomSettings_Click(object sender, RoutedEventArgs args)
{
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
if (viewModel?.SelectedApplication != null)
{
string customConfigDir = Path.Combine(AppDataManager.GamesDirPath, viewModel.SelectedApplication.IdString);
if (!Directory.Exists(customConfigDir))
{
Directory.CreateDirectory(customConfigDir);
}
OpenHelper.OpenFolder(customConfigDir);
}
}
public async void PurgePtcCache_Click(object sender, RoutedEventArgs args)
{
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;