diff options
Diffstat (limited to 'Ryujinx.Ava/UI/Models')
| -rw-r--r-- | Ryujinx.Ava/UI/Models/ProfileImageModel.cs | 20 | ||||
| -rw-r--r-- | Ryujinx.Ava/UI/Models/SaveModel.cs | 24 | ||||
| -rw-r--r-- | Ryujinx.Ava/UI/Models/TempProfile.cs | 9 | ||||
| -rw-r--r-- | Ryujinx.Ava/UI/Models/UserProfile.cs | 42 |
4 files changed, 63 insertions, 32 deletions
diff --git a/Ryujinx.Ava/UI/Models/ProfileImageModel.cs b/Ryujinx.Ava/UI/Models/ProfileImageModel.cs index 63da7b44..8aa19400 100644 --- a/Ryujinx.Ava/UI/Models/ProfileImageModel.cs +++ b/Ryujinx.Ava/UI/Models/ProfileImageModel.cs @@ -1,6 +1,9 @@ +using Avalonia.Media; +using Ryujinx.Ava.UI.ViewModels; + namespace Ryujinx.Ava.UI.Models { - public class ProfileImageModel + public class ProfileImageModel : BaseModel { public ProfileImageModel(string name, byte[] data) { @@ -10,5 +13,20 @@ namespace Ryujinx.Ava.UI.Models public string Name { get; set; } public byte[] Data { get; set; } + + private SolidColorBrush _backgroundColor = new(Colors.White); + + public SolidColorBrush BackgroundColor + { + get + { + return _backgroundColor; + } + set + { + _backgroundColor = value; + OnPropertyChanged(); + } + } } }
\ No newline at end of file diff --git a/Ryujinx.Ava/UI/Models/SaveModel.cs b/Ryujinx.Ava/UI/Models/SaveModel.cs index 3c20741f..7096f9d7 100644 --- a/Ryujinx.Ava/UI/Models/SaveModel.cs +++ b/Ryujinx.Ava/UI/Models/SaveModel.cs @@ -4,13 +4,10 @@ using LibHac.Fs.Shim; using LibHac.Ncm; using Ryujinx.Ava.Common; using Ryujinx.Ava.Common.Locale; -using Ryujinx.Ava.UI.Controls; using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.ViewModels; using Ryujinx.Ava.UI.Windows; using Ryujinx.HLE.FileSystem; -using Ryujinx.Ui.App.Common; -using System; using System.IO; using System.Linq; using System.Threading.Tasks; @@ -22,7 +19,6 @@ namespace Ryujinx.Ava.UI.Models private readonly HorizonClient _horizonClient; private long _size; - public Action DeleteAction { get; set; } public ulong SaveId { get; } public ProgramId TitleId { get; } public string TitleIdString => $"{TitleId.Value:X16}"; @@ -99,25 +95,5 @@ namespace Ryujinx.Ava.UI.Models }); } - - public void OpenLocation() - { - ApplicationHelper.OpenSaveDir(SaveId); - } - - public async void Delete() - { - var result = await ContentDialogHelper.CreateConfirmationDialog(LocaleManager.Instance[LocaleKeys.DeleteUserSave], - LocaleManager.Instance[LocaleKeys.IrreversibleActionNote], - LocaleManager.Instance[LocaleKeys.InputDialogYes], - LocaleManager.Instance[LocaleKeys.InputDialogNo], ""); - - if (result == UserResult.Yes) - { - _horizonClient.Fs.DeleteSaveData(SaveDataSpaceId.User, SaveId); - - DeleteAction?.Invoke(); - } - } } }
\ No newline at end of file diff --git a/Ryujinx.Ava/UI/Models/TempProfile.cs b/Ryujinx.Ava/UI/Models/TempProfile.cs index 2dd7a6c8..05e16632 100644 --- a/Ryujinx.Ava/UI/Models/TempProfile.cs +++ b/Ryujinx.Ava/UI/Models/TempProfile.cs @@ -7,10 +7,12 @@ namespace Ryujinx.Ava.UI.Models public class TempProfile : BaseModel { private readonly UserProfile _profile; - private byte[] _image = null; + private byte[] _image; private string _name = String.Empty; private UserId _userId; + public uint MaxProfileNameLength => 0x20; + public byte[] Image { get => _image; @@ -28,9 +30,12 @@ namespace Ryujinx.Ava.UI.Models { _userId = value; OnPropertyChanged(); + OnPropertyChanged(nameof(UserIdString)); } } + public string UserIdString => _userId.ToString(); + public string Name { get => _name; @@ -52,7 +57,5 @@ namespace Ryujinx.Ava.UI.Models UserId = profile.UserId; } } - - public TempProfile(){} } }
\ No newline at end of file diff --git a/Ryujinx.Ava/UI/Models/UserProfile.cs b/Ryujinx.Ava/UI/Models/UserProfile.cs index 869db661..e7cd5300 100644 --- a/Ryujinx.Ava/UI/Models/UserProfile.cs +++ b/Ryujinx.Ava/UI/Models/UserProfile.cs @@ -1,5 +1,7 @@ +using Avalonia.Media; using Ryujinx.Ava.UI.Controls; using Ryujinx.Ava.UI.ViewModels; +using Ryujinx.Ava.UI.Views.User; using Ryujinx.HLE.HOS.Services.Account.Acc; using Profile = Ryujinx.HLE.HOS.Services.Account.Acc.UserProfile; @@ -12,6 +14,8 @@ namespace Ryujinx.Ava.UI.Models private byte[] _image; private string _name; private UserId _userId; + private bool _isPointerOver; + private IBrush _backgroundColor; public byte[] Image { @@ -43,27 +47,57 @@ namespace Ryujinx.Ava.UI.Models } } + public bool IsPointerOver + { + get => _isPointerOver; + set + { + _isPointerOver = value; + OnPropertyChanged(); + } + } + + public IBrush BackgroundColor + { + get => _backgroundColor; + set + { + _backgroundColor = value; + OnPropertyChanged(); + } + } + public UserProfile(Profile profile, NavigationDialogHost owner) { _profile = profile; _owner = owner; + UpdateBackground(); + Image = profile.Image; Name = profile.Name; UserId = profile.UserId; } - public bool IsOpened => _profile.AccountState == AccountState.Open; - public void UpdateState() { - OnPropertyChanged(nameof(IsOpened)); + UpdateBackground(); OnPropertyChanged(nameof(Name)); } + private void UpdateBackground() + { + Avalonia.Application.Current.Styles.TryGetResource("ControlFillColorSecondary", out object color); + + if (color is not null) + { + BackgroundColor = _profile.AccountState == AccountState.Open ? new SolidColorBrush((Color)color) : Brushes.Transparent; + } + } + public void Recover(UserProfile userProfile) { - _owner.Navigate(typeof(UserEditor), (_owner, userProfile, true)); + _owner.Navigate(typeof(UserEditorView), (_owner, userProfile, true)); } } }
\ No newline at end of file |
