InputView.axaml.cs
1 using Avalonia.Controls; 2 using Ryujinx.Ava.Common.Locale; 3 using Ryujinx.Ava.UI.Helpers; 4 using Ryujinx.Ava.UI.Models; 5 using Ryujinx.Ava.UI.ViewModels.Input; 6 7 namespace Ryujinx.Ava.UI.Views.Input 8 { 9 public partial class InputView : UserControl 10 { 11 private bool _dialogOpen; 12 private InputViewModel ViewModel { get; set; } 13 14 public InputView() 15 { 16 DataContext = ViewModel = new InputViewModel(this); 17 18 InitializeComponent(); 19 } 20 21 public void SaveCurrentProfile() 22 { 23 ViewModel.Save(); 24 } 25 26 private async void PlayerIndexBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e) 27 { 28 if (ViewModel.IsModified && !_dialogOpen) 29 { 30 _dialogOpen = true; 31 32 var result = await ContentDialogHelper.CreateConfirmationDialog( 33 LocaleManager.Instance[LocaleKeys.DialogControllerSettingsModifiedConfirmMessage], 34 LocaleManager.Instance[LocaleKeys.DialogControllerSettingsModifiedConfirmSubMessage], 35 LocaleManager.Instance[LocaleKeys.InputDialogYes], 36 LocaleManager.Instance[LocaleKeys.InputDialogNo], 37 LocaleManager.Instance[LocaleKeys.RyujinxConfirm]); 38 39 if (result == UserResult.Yes) 40 { 41 ViewModel.Save(); 42 } 43 44 _dialogOpen = false; 45 46 ViewModel.IsModified = false; 47 48 if (e.AddedItems.Count > 0) 49 { 50 var player = (PlayerModel)e.AddedItems[0]; 51 ViewModel.PlayerId = player.Id; 52 } 53 } 54 } 55 56 public void Dispose() 57 { 58 ViewModel.Dispose(); 59 } 60 } 61 }