mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-11-19 06:50:55 -05:00
* So much boilerplate * Slow and steady * Restructure + Ack suggestions * Restructure + Ack suggestions * Restructure * Clean * Propogate those fields i forgot about * It builds * Progress * Almost there * Fix stupid mistake * Fix more stupid mistakes * Actually fix fuck ups * Start localising * r/therestofthefuckingowl * Localise ButtonKeyAssigner * Are you feeling it now mr krabs * We’re done at last * Crimes against code * Try me in the Hague * Please be quiet * Crimes are here to stay * Dispose stuff * Cleanup a couple things * Visual fixes and improvements One weird bug * Fix rebase errors * Fixes * Ack Suggestions Remaining ack suggestions Update src/Ryujinx.Ava/UI/Models/Input/ControllerInputConfig.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> Update src/Ryujinx.Ava/UI/Models/Input/ControllerInputConfig.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Formatting and error More Ava 11-ness Whoops * Code style fixes * Style fixes * Analyzer fix * Remove all ReflectionBindings * Remove ambigious object * Remove redundant property * Old man yells at formatter * r e a d o n l y * Fix profiles * Use new Sliders --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
104 lines
3.3 KiB
C#
104 lines
3.3 KiB
C#
using Avalonia.Controls;
|
|
using FluentAvalonia.Core;
|
|
using FluentAvalonia.UI.Controls;
|
|
using Ryujinx.Ava.Common.Locale;
|
|
using Ryujinx.Ava.UI.ViewModels;
|
|
using Ryujinx.HLE.FileSystem;
|
|
using System;
|
|
|
|
namespace Ryujinx.Ava.UI.Windows
|
|
{
|
|
public partial class SettingsWindow : StyleableWindow
|
|
{
|
|
internal SettingsViewModel ViewModel { get; set; }
|
|
|
|
public SettingsWindow(VirtualFileSystem virtualFileSystem, ContentManager contentManager)
|
|
{
|
|
Title = $"Ryujinx {Program.Version} - {LocaleManager.Instance[LocaleKeys.Settings]}";
|
|
|
|
ViewModel = new SettingsViewModel(virtualFileSystem, contentManager);
|
|
DataContext = ViewModel;
|
|
|
|
ViewModel.CloseWindow += Close;
|
|
ViewModel.SaveSettingsEvent += SaveSettings;
|
|
|
|
InitializeComponent();
|
|
Load();
|
|
}
|
|
|
|
public SettingsWindow()
|
|
{
|
|
ViewModel = new SettingsViewModel();
|
|
DataContext = ViewModel;
|
|
|
|
InitializeComponent();
|
|
Load();
|
|
}
|
|
|
|
public void SaveSettings()
|
|
{
|
|
InputPage.InputView?.SaveCurrentProfile();
|
|
|
|
if (Owner is MainWindow window && ViewModel.DirectoryChanged)
|
|
{
|
|
window.LoadApplications();
|
|
}
|
|
}
|
|
|
|
private void Load()
|
|
{
|
|
Pages.Children.Clear();
|
|
NavPanel.SelectionChanged += NavPanelOnSelectionChanged;
|
|
NavPanel.SelectedItem = NavPanel.MenuItems.ElementAt(0);
|
|
}
|
|
|
|
private void NavPanelOnSelectionChanged(object sender, NavigationViewSelectionChangedEventArgs e)
|
|
{
|
|
if (e.SelectedItem is NavigationViewItem navItem && navItem.Tag is not null)
|
|
{
|
|
switch (navItem.Tag.ToString())
|
|
{
|
|
case "UiPage":
|
|
UiPage.ViewModel = ViewModel;
|
|
NavPanel.Content = UiPage;
|
|
break;
|
|
case "InputPage":
|
|
NavPanel.Content = InputPage;
|
|
break;
|
|
case "HotkeysPage":
|
|
NavPanel.Content = HotkeysPage;
|
|
break;
|
|
case "SystemPage":
|
|
SystemPage.ViewModel = ViewModel;
|
|
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;
|
|
default:
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override void OnClosing(WindowClosingEventArgs e)
|
|
{
|
|
HotkeysPage.Dispose();
|
|
InputPage.Dispose();
|
|
base.OnClosing(e);
|
|
}
|
|
}
|
|
}
|