mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-03-15 02:34:48 +00:00
misc: chore: Use RyujinxControl<T> in more places
This commit is contained in:
parent
d87d3235e9
commit
dfcb8a7fc0
11 changed files with 85 additions and 111 deletions
|
@ -26,9 +26,9 @@ namespace Ryujinx.Ava.Common
|
||||||
|
|
||||||
internal class TrimmerWindow : Ryujinx.Common.Logging.XCIFileTrimmerLog
|
internal class TrimmerWindow : Ryujinx.Common.Logging.XCIFileTrimmerLog
|
||||||
{
|
{
|
||||||
private readonly XCITrimmerViewModel _viewModel;
|
private readonly XciTrimmerViewModel _viewModel;
|
||||||
|
|
||||||
public TrimmerWindow(XCITrimmerViewModel viewModel)
|
public TrimmerWindow(XciTrimmerViewModel viewModel)
|
||||||
{
|
{
|
||||||
_viewModel = viewModel;
|
_viewModel = viewModel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ using static Ryujinx.Common.Utilities.XCIFileTrimmer;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.ViewModels
|
namespace Ryujinx.Ava.UI.ViewModels
|
||||||
{
|
{
|
||||||
public class XCITrimmerViewModel : BaseModel
|
public class XciTrimmerViewModel : BaseModel
|
||||||
{
|
{
|
||||||
private const long _bytesPerMB = 1024 * 1024;
|
private const long _bytesPerMB = 1024 * 1024;
|
||||||
private enum ProcessingMode
|
private enum ProcessingMode
|
||||||
|
@ -46,7 +46,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
private SortField _sortField = SortField.Name;
|
private SortField _sortField = SortField.Name;
|
||||||
private bool _sortAscending = true;
|
private bool _sortAscending = true;
|
||||||
|
|
||||||
public XCITrimmerViewModel(MainWindowViewModel mainWindowViewModel)
|
public XciTrimmerViewModel(MainWindowViewModel mainWindowViewModel)
|
||||||
{
|
{
|
||||||
_logger = new XCITrimmerLog.TrimmerWindow(this);
|
_logger = new XCITrimmerLog.TrimmerWindow(this);
|
||||||
_mainWindowViewModel = mainWindowViewModel;
|
_mainWindowViewModel = mainWindowViewModel;
|
||||||
|
@ -254,9 +254,9 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
|
|
||||||
private class CompareXCITrimmerFiles : IComparer<XCITrimmerFileModel>
|
private class CompareXCITrimmerFiles : IComparer<XCITrimmerFileModel>
|
||||||
{
|
{
|
||||||
private XCITrimmerViewModel _viewModel;
|
private XciTrimmerViewModel _viewModel;
|
||||||
|
|
||||||
public CompareXCITrimmerFiles(XCITrimmerViewModel ViewModel)
|
public CompareXCITrimmerFiles(XciTrimmerViewModel ViewModel)
|
||||||
{
|
{
|
||||||
_viewModel = ViewModel;
|
_viewModel = ViewModel;
|
||||||
}
|
}
|
|
@ -6,26 +6,16 @@ using Ryujinx.Ava.Common.Locale;
|
||||||
using Ryujinx.Ava.Common.Models;
|
using Ryujinx.Ava.Common.Models;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using Ryujinx.Ava.Systems.AppLibrary;
|
using Ryujinx.Ava.Systems.AppLibrary;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Common.Helper;
|
using Ryujinx.Common.Helper;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Dialog
|
namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
{
|
{
|
||||||
public partial class DownloadableContentManagerView : UserControl
|
public partial class DownloadableContentManagerView : RyujinxControl<DownloadableContentManagerViewModel>
|
||||||
{
|
{
|
||||||
public DownloadableContentManagerViewModel ViewModel;
|
|
||||||
|
|
||||||
public DownloadableContentManagerView()
|
public DownloadableContentManagerView()
|
||||||
{
|
{
|
||||||
DataContext = this;
|
|
||||||
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
public DownloadableContentManagerView(ApplicationLibrary applicationLibrary, ApplicationData applicationData)
|
|
||||||
{
|
|
||||||
DataContext = ViewModel = new DownloadableContentManagerViewModel(applicationLibrary, applicationData);
|
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,8 +26,11 @@ namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
PrimaryButtonText = string.Empty,
|
PrimaryButtonText = string.Empty,
|
||||||
SecondaryButtonText = string.Empty,
|
SecondaryButtonText = string.Empty,
|
||||||
CloseButtonText = string.Empty,
|
CloseButtonText = string.Empty,
|
||||||
Content = new DownloadableContentManagerView(applicationLibrary, applicationData),
|
|
||||||
Title = string.Format(LocaleManager.Instance[LocaleKeys.DlcWindowTitle], applicationData.Name, applicationData.IdBaseString),
|
Title = string.Format(LocaleManager.Instance[LocaleKeys.DlcWindowTitle], applicationData.Name, applicationData.IdBaseString),
|
||||||
|
Content = new DownloadableContentManagerView
|
||||||
|
{
|
||||||
|
ViewModel = new DownloadableContentManagerViewModel(applicationLibrary, applicationData)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Style bottomBorder = new(x => x.OfType<Grid>().Name("DialogSpace").Child().OfType<Border>());
|
Style bottomBorder = new(x => x.OfType<Grid>().Name("DialogSpace").Child().OfType<Border>());
|
||||||
|
|
|
@ -7,27 +7,17 @@ using Ryujinx.Ava.UI.Helpers;
|
||||||
using Ryujinx.Ava.UI.Models;
|
using Ryujinx.Ava.UI.Models;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using Ryujinx.Ava.Systems.AppLibrary;
|
using Ryujinx.Ava.Systems.AppLibrary;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Common.Helper;
|
using Ryujinx.Common.Helper;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Button = Avalonia.Controls.Button;
|
using Button = Avalonia.Controls.Button;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Dialog
|
namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
{
|
{
|
||||||
public partial class ModManagerView : UserControl
|
public partial class ModManagerView : RyujinxControl<ModManagerViewModel>
|
||||||
{
|
{
|
||||||
public readonly ModManagerViewModel ViewModel;
|
|
||||||
|
|
||||||
public ModManagerView()
|
public ModManagerView()
|
||||||
{
|
{
|
||||||
DataContext = this;
|
|
||||||
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModManagerView(ulong titleId, ulong titleIdBase, ApplicationLibrary applicationLibrary)
|
|
||||||
{
|
|
||||||
DataContext = ViewModel = new ModManagerViewModel(titleId, titleIdBase, applicationLibrary);
|
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +28,10 @@ namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
PrimaryButtonText = string.Empty,
|
PrimaryButtonText = string.Empty,
|
||||||
SecondaryButtonText = string.Empty,
|
SecondaryButtonText = string.Empty,
|
||||||
CloseButtonText = string.Empty,
|
CloseButtonText = string.Empty,
|
||||||
Content = new ModManagerView(titleId, titleIdBase, appLibrary),
|
Content = new ModManagerView
|
||||||
|
{
|
||||||
|
ViewModel = new ModManagerViewModel(titleId, titleIdBase, appLibrary)
|
||||||
|
},
|
||||||
Title = string.Format(LocaleManager.Instance[LocaleKeys.ModWindowTitle], titleName, titleId.ToString("X16")),
|
Title = string.Format(LocaleManager.Instance[LocaleKeys.ModWindowTitle], titleName, titleId.ToString("X16")),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -6,26 +6,16 @@ using Ryujinx.Ava.Common.Locale;
|
||||||
using Ryujinx.Ava.Common.Models;
|
using Ryujinx.Ava.Common.Models;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using Ryujinx.Ava.Systems.AppLibrary;
|
using Ryujinx.Ava.Systems.AppLibrary;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Common.Helper;
|
using Ryujinx.Common.Helper;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Dialog
|
namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
{
|
{
|
||||||
public partial class TitleUpdateManagerView : UserControl
|
public partial class TitleUpdateManagerView : RyujinxControl<TitleUpdateViewModel>
|
||||||
{
|
{
|
||||||
public readonly TitleUpdateViewModel ViewModel;
|
|
||||||
|
|
||||||
public TitleUpdateManagerView()
|
public TitleUpdateManagerView()
|
||||||
{
|
{
|
||||||
DataContext = this;
|
|
||||||
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
public TitleUpdateManagerView(ApplicationLibrary applicationLibrary, ApplicationData applicationData)
|
|
||||||
{
|
|
||||||
DataContext = ViewModel = new TitleUpdateViewModel(applicationLibrary, applicationData);
|
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,8 +26,11 @@ namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
PrimaryButtonText = string.Empty,
|
PrimaryButtonText = string.Empty,
|
||||||
SecondaryButtonText = string.Empty,
|
SecondaryButtonText = string.Empty,
|
||||||
CloseButtonText = string.Empty,
|
CloseButtonText = string.Empty,
|
||||||
Content = new TitleUpdateManagerView(applicationLibrary, applicationData),
|
|
||||||
Title = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.GameUpdateWindowHeading, applicationData.Name, applicationData.IdBaseString),
|
Title = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.GameUpdateWindowHeading, applicationData.Name, applicationData.IdBaseString),
|
||||||
|
Content = new TitleUpdateManagerView
|
||||||
|
{
|
||||||
|
ViewModel = new TitleUpdateViewModel(applicationLibrary, applicationData)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Style bottomBorder = new(x => x.OfType<Grid>().Name("DialogSpace").Child().OfType<Border>());
|
Style bottomBorder = new(x => x.OfType<Grid>().Name("DialogSpace").Child().OfType<Border>());
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
xmlns:models="clr-namespace:Ryujinx.Ava.Common.Models"
|
xmlns:models="clr-namespace:Ryujinx.Ava.Common.Models"
|
||||||
Width="700"
|
Width="700"
|
||||||
Height="600"
|
Height="600"
|
||||||
x:DataType="viewModels:XCITrimmerViewModel"
|
x:DataType="viewModels:XciTrimmerViewModel"
|
||||||
Focusable="True"
|
Focusable="True"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<Grid Margin="20 0 20 0" RowDefinitions="Auto,Auto,*,Auto,Auto">
|
<Grid Margin="20 0 20 0" RowDefinitions="Auto,Auto,*,Auto,Auto">
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
CornerRadius="5"
|
CornerRadius="5"
|
||||||
IsVisible="{Binding $parent[UserControl].((viewModels:XCITrimmerViewModel)DataContext).Processing}"
|
IsVisible="{Binding $parent[UserControl].((viewModels:XciTrimmerViewModel)DataContext).Processing}"
|
||||||
Maximum="100"
|
Maximum="100"
|
||||||
Minimum="0"
|
Minimum="0"
|
||||||
Value="{Binding PercentageProgress}" />
|
Value="{Binding PercentageProgress}" />
|
||||||
|
|
|
@ -4,27 +4,17 @@ using Avalonia.Styling;
|
||||||
using FluentAvalonia.UI.Controls;
|
using FluentAvalonia.UI.Controls;
|
||||||
using Ryujinx.Ava.Common.Locale;
|
using Ryujinx.Ava.Common.Locale;
|
||||||
using Ryujinx.Ava.Common.Models;
|
using Ryujinx.Ava.Common.Models;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Dialog
|
namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
{
|
{
|
||||||
public partial class XciTrimmerView : UserControl
|
public partial class XciTrimmerView : RyujinxControl<XciTrimmerViewModel>
|
||||||
{
|
{
|
||||||
public XCITrimmerViewModel ViewModel;
|
|
||||||
|
|
||||||
public XciTrimmerView()
|
public XciTrimmerView()
|
||||||
{
|
{
|
||||||
DataContext = this;
|
|
||||||
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
public XciTrimmerView(MainWindowViewModel mainWindowViewModel)
|
|
||||||
{
|
|
||||||
DataContext = ViewModel = new XCITrimmerViewModel(mainWindowViewModel);
|
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +25,10 @@ namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
PrimaryButtonText = string.Empty,
|
PrimaryButtonText = string.Empty,
|
||||||
SecondaryButtonText = string.Empty,
|
SecondaryButtonText = string.Empty,
|
||||||
CloseButtonText = string.Empty,
|
CloseButtonText = string.Empty,
|
||||||
Content = new XciTrimmerView(RyujinxApp.MainWindow.ViewModel),
|
Content = new XciTrimmerView
|
||||||
|
{
|
||||||
|
ViewModel = new XciTrimmerViewModel(RyujinxApp.MainWindow.ViewModel)
|
||||||
|
},
|
||||||
Title = LocaleManager.Instance[LocaleKeys.XCITrimmerWindowTitle]
|
Title = LocaleManager.Instance[LocaleKeys.XCITrimmerWindowTitle]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,7 +63,7 @@ namespace Ryujinx.Ava.UI.Views.Dialog
|
||||||
public void Sort_Checked(object sender, RoutedEventArgs args)
|
public void Sort_Checked(object sender, RoutedEventArgs args)
|
||||||
{
|
{
|
||||||
if (sender is RadioButton { Tag: string sortField })
|
if (sender is RadioButton { Tag: string sortField })
|
||||||
ViewModel.SortingField = Enum.Parse<XCITrimmerViewModel.SortField>(sortField);
|
ViewModel.SortingField = Enum.Parse<XciTrimmerViewModel.SortField>(sortField);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Order_Checked(object sender, RoutedEventArgs args)
|
public void Order_Checked(object sender, RoutedEventArgs args)
|
||||||
|
|
|
@ -3,7 +3,9 @@ using Avalonia.Controls.Primitives;
|
||||||
using Avalonia.Input;
|
using Avalonia.Input;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using Avalonia.LogicalTree;
|
using Avalonia.LogicalTree;
|
||||||
|
using Avalonia.Threading;
|
||||||
using Ryujinx.Ava.Input;
|
using Ryujinx.Ava.Input;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
using Ryujinx.Ava.UI.Helpers;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using Ryujinx.Input;
|
using Ryujinx.Input;
|
||||||
|
@ -13,7 +15,7 @@ using Key = Ryujinx.Common.Configuration.Hid.Key;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
{
|
{
|
||||||
public partial class SettingsHotkeysView : UserControl
|
public partial class SettingsHotkeysView : RyujinxControl<SettingsViewModel>
|
||||||
{
|
{
|
||||||
private ButtonKeyAssigner _currentAssigner;
|
private ButtonKeyAssigner _currentAssigner;
|
||||||
private readonly IGamepadDriver _avaloniaKeyboardDriver;
|
private readonly IGamepadDriver _avaloniaKeyboardDriver;
|
||||||
|
@ -78,45 +80,49 @@ namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
{
|
{
|
||||||
if (e.ButtonValue.HasValue)
|
if (e.ButtonValue.HasValue)
|
||||||
{
|
{
|
||||||
SettingsViewModel viewModel = (DataContext) as SettingsViewModel;
|
|
||||||
Button buttonValue = e.ButtonValue.Value;
|
Button buttonValue = e.ButtonValue.Value;
|
||||||
|
|
||||||
switch (button.Name)
|
Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
case "ToggleVSyncMode":
|
switch (button.Name)
|
||||||
viewModel.KeyboardHotkey.ToggleVSyncMode = buttonValue.AsHidType<Key>();
|
{
|
||||||
break;
|
case "ToggleVSyncMode":
|
||||||
case "Screenshot":
|
ViewModel.KeyboardHotkey.ToggleVSyncMode = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.Screenshot = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "Screenshot":
|
||||||
case "ShowUI":
|
ViewModel.KeyboardHotkey.Screenshot = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.ShowUI = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "ShowUI":
|
||||||
case "Pause":
|
ViewModel.KeyboardHotkey.ShowUI = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.Pause = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "Pause":
|
||||||
case "ToggleMute":
|
ViewModel.KeyboardHotkey.Pause = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.ToggleMute = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "ToggleMute":
|
||||||
case "ResScaleUp":
|
ViewModel.KeyboardHotkey.ToggleMute = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.ResScaleUp = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "ResScaleUp":
|
||||||
case "ResScaleDown":
|
ViewModel.KeyboardHotkey.ResScaleUp = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.ResScaleDown = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "ResScaleDown":
|
||||||
case "VolumeUp":
|
ViewModel.KeyboardHotkey.ResScaleDown = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.VolumeUp = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "VolumeUp":
|
||||||
case "VolumeDown":
|
ViewModel.KeyboardHotkey.VolumeUp = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.VolumeDown = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "VolumeDown":
|
||||||
case "CustomVSyncIntervalIncrement":
|
ViewModel.KeyboardHotkey.VolumeDown = buttonValue.AsHidType<Key>();
|
||||||
viewModel.KeyboardHotkey.CustomVSyncIntervalIncrement = buttonValue.AsHidType<Key>();
|
break;
|
||||||
break;
|
case "CustomVSyncIntervalIncrement":
|
||||||
case "CustomVSyncIntervalDecrement":
|
ViewModel.KeyboardHotkey.CustomVSyncIntervalIncrement =
|
||||||
viewModel.KeyboardHotkey.CustomVSyncIntervalDecrement = buttonValue.AsHidType<Key>();
|
buttonValue.AsHidType<Key>();
|
||||||
break;
|
break;
|
||||||
}
|
case "CustomVSyncIntervalDecrement":
|
||||||
|
ViewModel.KeyboardHotkey.CustomVSyncIntervalDecrement =
|
||||||
|
buttonValue.AsHidType<Key>();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
{
|
{
|
||||||
public partial class SettingsNetworkView : UserControl
|
public partial class SettingsNetworkView : RyujinxControl<SettingsViewModel>
|
||||||
{
|
{
|
||||||
private readonly Random _random;
|
private readonly Random _random;
|
||||||
|
|
||||||
public SettingsViewModel ViewModel;
|
|
||||||
|
|
||||||
public SettingsNetworkView()
|
public SettingsNetworkView()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using TimeZone = Ryujinx.Ava.UI.Models.TimeZone;
|
using TimeZone = Ryujinx.Ava.UI.Models.TimeZone;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
{
|
{
|
||||||
public partial class SettingsSystemView : UserControl
|
public partial class SettingsSystemView : RyujinxControl<SettingsViewModel>
|
||||||
{
|
{
|
||||||
public SettingsViewModel ViewModel;
|
|
||||||
|
|
||||||
public SettingsSystemView()
|
public SettingsSystemView()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
|
@ -3,6 +3,7 @@ using Avalonia.Controls;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using Avalonia.Platform.Storage;
|
using Avalonia.Platform.Storage;
|
||||||
using Gommon;
|
using Gommon;
|
||||||
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
using Ryujinx.Ava.UI.Helpers;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using Ryujinx.Ava.Utilities;
|
using Ryujinx.Ava.Utilities;
|
||||||
|
@ -14,20 +15,18 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
{
|
{
|
||||||
public partial class SettingsUiView : UserControl
|
public partial class SettingsUiView : RyujinxControl<SettingsViewModel>
|
||||||
{
|
{
|
||||||
public SettingsViewModel ViewModel;
|
|
||||||
|
|
||||||
public SettingsUiView()
|
public SettingsUiView()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
AddGameDirButton.Command =
|
AddGameDirButton.Command =
|
||||||
Commands.Create(() => AddDirButton(GameDirPathBox, ViewModel.GameDirectories, true));
|
Commands.Create(() => AddDirButton(GameDirPathBox, ViewModel.GameDirectories));
|
||||||
AddAutoloadDirButton.Command =
|
AddAutoloadDirButton.Command =
|
||||||
Commands.Create(() => AddDirButton(AutoloadDirPathBox, ViewModel.AutoloadDirectories, false));
|
Commands.Create(() => AddDirButton(AutoloadDirPathBox, ViewModel.AutoloadDirectories));
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task AddDirButton(TextBox addDirBox, AvaloniaList<string> directories, bool isGameList)
|
private async Task AddDirButton(TextBox addDirBox, AvaloniaList<string> directories)
|
||||||
{
|
{
|
||||||
string path = addDirBox.Text;
|
string path = addDirBox.Text;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue