This is an attempt to decouple "saving gamepad settings" from the rest of the emulator settings. Should fix the issue where the gamepad was not detected when starting the emulator and the game (usually after saving settings with the gamepad turned off)
80 lines
2.4 KiB
C#
80 lines
2.4 KiB
C#
using Avalonia.Controls;
|
|
using Ryujinx.Ava.Common.Locale;
|
|
using Ryujinx.Ava.UI.Helpers;
|
|
using Ryujinx.Ava.UI.Models;
|
|
using Ryujinx.Ava.UI.ViewModels.Input;
|
|
|
|
namespace Ryujinx.Ava.UI.Views.Input
|
|
{
|
|
public partial class InputView : UserControl
|
|
{
|
|
private bool _dialogOpen;
|
|
private InputViewModel ViewModel { get; set; }
|
|
|
|
public InputView()
|
|
{
|
|
DataContext = ViewModel = new InputViewModel(this);
|
|
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SaveCurrentProfile()
|
|
{
|
|
ViewModel.Save();
|
|
}
|
|
|
|
private async void PlayerIndexBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
if (PlayerIndexBox != null)
|
|
{
|
|
if (PlayerIndexBox.SelectedIndex != (int)ViewModel.PlayerId)
|
|
{
|
|
PlayerIndexBox.SelectedIndex = (int)ViewModel.PlayerId;
|
|
}
|
|
}
|
|
|
|
if (ViewModel.IsModified && !_dialogOpen)
|
|
{
|
|
_dialogOpen = true;
|
|
|
|
UserResult result = await ContentDialogHelper.CreateDeniableConfirmationDialog(
|
|
LocaleManager.Instance[LocaleKeys.DialogControllerSettingsModifiedConfirmMessage],
|
|
LocaleManager.Instance[LocaleKeys.DialogControllerSettingsModifiedConfirmSubMessage],
|
|
LocaleManager.Instance[LocaleKeys.InputDialogYes],
|
|
LocaleManager.Instance[LocaleKeys.InputDialogNo],
|
|
LocaleManager.Instance[LocaleKeys.Cancel],
|
|
LocaleManager.Instance[LocaleKeys.RyujinxConfirm]);
|
|
|
|
|
|
if (result == UserResult.Yes)
|
|
{
|
|
ViewModel.InitInputPage = false;
|
|
ViewModel.Save();
|
|
}
|
|
|
|
_dialogOpen = false;
|
|
|
|
if (result == UserResult.Cancel)
|
|
{
|
|
if (e.AddedItems.Count > 0)
|
|
{
|
|
ViewModel.IsModified = true;
|
|
ViewModel.PlayerId = ((PlayerModel)e.AddedItems[0])!.Id;
|
|
}
|
|
return;
|
|
}
|
|
|
|
ViewModel.PlayerId = ViewModel.PlayerIdChoose;
|
|
|
|
ViewModel.IsModified = false;
|
|
}
|
|
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
ViewModel.Dispose();
|
|
}
|
|
}
|
|
}
|