forked from MeloNX/MeloNX
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Silence dotnet format IDE0059 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address dotnet format CA1822 warnings * Address or silence dotnet format CA1069 warnings * Make dotnet format succeed in style mode * Address dotnet format CA1401 warnings * Address remaining dotnet format analyzer warnings * Address review comments * dotnet-format fixes after rebase * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Format if-blocks correctly * Another rebase, another dotnet format run * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Add comments to disabled warnings * Remove a few unused parameters * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Address IDE0260 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * dotnet format pass with new editorconfig * Fix naming style issues * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Revert one suggestion * Second dotnet format pass and fix build issues * Final pass of dotnet format * Add trailing commas * Fix formatting issues * Keep unnecessary assignment in IconColorPicker.cs * Use using declarations and extend resource lifetimes * Fix rebase issues * Adjust comment spacing * Fix typo * Fix naming issues * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Revert unintentional change * Remove unused file * Remove static keyword from ViewModels Binding of static members doesn't work and is silently ignored. --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
84 lines
2.7 KiB
C#
84 lines
2.7 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Interactivity;
|
|
using Ryujinx.Ava.Common.Locale;
|
|
using Ryujinx.Ava.UI.ViewModels;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
namespace Ryujinx.Ava.UI.Views.Settings
|
|
{
|
|
public partial class SettingsUiView : UserControl
|
|
{
|
|
public SettingsViewModel ViewModel;
|
|
|
|
public SettingsUiView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private async void AddButton_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
string path = PathBox.Text;
|
|
|
|
if (!string.IsNullOrWhiteSpace(path) && Directory.Exists(path) && !ViewModel.GameDirectories.Contains(path))
|
|
{
|
|
ViewModel.GameDirectories.Add(path);
|
|
ViewModel.DirectoryChanged = true;
|
|
}
|
|
else
|
|
{
|
|
if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
path = await new OpenFolderDialog().ShowAsync(desktop.MainWindow);
|
|
|
|
if (!string.IsNullOrWhiteSpace(path))
|
|
{
|
|
ViewModel.GameDirectories.Add(path);
|
|
ViewModel.DirectoryChanged = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void RemoveButton_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
int oldIndex = GameList.SelectedIndex;
|
|
|
|
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;
|
|
}
|
|
}
|
|
|
|
public async void BrowseTheme(object sender, RoutedEventArgs e)
|
|
{
|
|
var dialog = new OpenFileDialog
|
|
{
|
|
Title = LocaleManager.Instance[LocaleKeys.SettingsSelectThemeFileDialogTitle],
|
|
AllowMultiple = false,
|
|
};
|
|
|
|
dialog.Filters.Add(new FileDialogFilter { Extensions = { "xaml" }, Name = LocaleManager.Instance[LocaleKeys.SettingsXamlThemeFile] });
|
|
|
|
if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
var file = await dialog.ShowAsync(desktop.MainWindow);
|
|
|
|
if (file != null && file.Length > 0)
|
|
{
|
|
ViewModel.CustomThemePath = file[0];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|