/ src / Ryujinx / UI / Views / Input / InputView.axaml.cs
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  }