aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs')
-rw-r--r--Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs62
1 files changed, 25 insertions, 37 deletions
diff --git a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs
index 810beb3e..0e610d77 100644
--- a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs
+++ b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs
@@ -16,7 +16,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Threading.Tasks;
using TimeZone = Ryujinx.Ava.Ui.Models.TimeZone;
namespace Ryujinx.Ava.Ui.Windows
@@ -31,7 +30,7 @@ namespace Ryujinx.Ava.Ui.Windows
{
Title = $"Ryujinx {Program.Version} - {LocaleManager.Instance["Settings"]}";
- ViewModel = new SettingsViewModel(virtualFileSystem, contentManager, this);
+ ViewModel = new SettingsViewModel(virtualFileSystem, contentManager, this);
DataContext = ViewModel;
InitializeComponent();
@@ -48,7 +47,7 @@ namespace Ryujinx.Ava.Ui.Windows
public SettingsWindow()
{
- ViewModel = new SettingsViewModel();
+ ViewModel = new SettingsViewModel();
DataContext = ViewModel;
InitializeComponent();
@@ -79,7 +78,7 @@ namespace Ryujinx.Ava.Ui.Windows
PointerPressed += MouseClick;
- IKeyboard keyboard = (IKeyboard)ViewModel.AvaloniaKeyboardDriver.GetGamepad(ViewModel.AvaloniaKeyboardDriver.GamepadsIds[0]);
+ IKeyboard keyboard = (IKeyboard)ViewModel.AvaloniaKeyboardDriver.GetGamepad(ViewModel.AvaloniaKeyboardDriver.GamepadsIds[0]);
IButtonAssigner assigner = new KeyboardKeyAssigner(keyboard);
_currentAssigner.GetInputAndAssign(assigner);
@@ -92,6 +91,7 @@ namespace Ryujinx.Ava.Ui.Windows
_currentAssigner.Cancel();
_currentAssigner = null;
+
button.IsChecked = false;
}
}
@@ -122,36 +122,19 @@ namespace Ryujinx.Ava.Ui.Windows
{
if (e.SelectedItem is NavigationViewItem navitem)
{
- switch (navitem.Tag.ToString())
+ NavPanel.Content = navitem.Tag.ToString() switch
{
- case "UiPage":
- NavPanel.Content = UiPage;
- break;
- case "InputPage":
- NavPanel.Content = InputPage;
- break;
- case "HotkeysPage":
- NavPanel.Content = HotkeysPage;
- break;
- case "SystemPage":
- NavPanel.Content = SystemPage;
- break;
- case "CpuPage":
- NavPanel.Content = CpuPage;
- break;
- case "GraphicsPage":
- NavPanel.Content = GraphicsPage;
- break;
- case "AudioPage":
- NavPanel.Content = AudioPage;
- break;
- case "NetworkPage":
- NavPanel.Content = NetworkPage;
- break;
- case "LoggingPage":
- NavPanel.Content = LoggingPage;
- break;
- }
+ "UiPage" => UiPage,
+ "InputPage" => InputPage,
+ "HotkeysPage" => HotkeysPage,
+ "SystemPage" => SystemPage,
+ "CpuPage" => CpuPage,
+ "GraphicsPage" => GraphicsPage,
+ "AudioPage" => AudioPage,
+ "NetworkPage" => NetworkPage,
+ "LoggingPage" => LoggingPage,
+ _ => throw new NotImplementedException()
+ };
}
}
@@ -178,13 +161,18 @@ namespace Ryujinx.Ava.Ui.Windows
private void RemoveButton_OnClick(object sender, RoutedEventArgs e)
{
- List<string> selected = new(GameList.SelectedItems.Cast<string>());
+ int oldIndex = GameList.SelectedIndex;
- foreach (string path in selected)
+ foreach (string path in new List<string>(GameList.SelectedItems.Cast<string>()))
{
ViewModel.GameDirectories.Remove(path);
ViewModel.DirectoryChanged = true;
}
+
+ if (GameList.ItemCount > 0)
+ {
+ GameList.SelectedIndex = oldIndex < GameList.ItemCount ? oldIndex : 0;
+ }
}
private void TimeZoneBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -214,7 +202,6 @@ namespace Ryujinx.Ava.Ui.Windows
private void SaveButton_Clicked(object sender, RoutedEventArgs e)
{
SaveSettings();
-
Close();
}
@@ -232,7 +219,6 @@ namespace Ryujinx.Ava.Ui.Windows
private void SaveSettings()
{
ViewModel.SaveSettings();
-
ControllerSettings?.SaveCurrentProfile();
if (Owner is MainWindow window && ViewModel.DirectoryChanged)
@@ -246,8 +232,10 @@ namespace Ryujinx.Ava.Ui.Windows
protected override void OnClosed(EventArgs e)
{
ControllerSettings.Dispose();
+
_currentAssigner?.Cancel();
_currentAssigner = null;
+
base.OnClosed(e);
}
}