Make UserProfile ordering consistent

This commit is contained in:
Isaac Marovitz 2023-01-04 11:21:06 -05:00
parent 151908f9dc
commit 1acfa338d8
No known key found for this signature in database
GPG key ID: 97250B2B09A132E1
3 changed files with 6 additions and 33 deletions

View file

@ -113,25 +113,13 @@ namespace Ryujinx.Ava.UI.Controls
ViewModel.Profiles.Clear();
ViewModel.LostProfiles.Clear();
var profiles = AccountManager.GetAllUsers().OrderByDescending(x => x.AccountState == AccountState.Open);
var profiles = AccountManager.GetAllUsers();
foreach (var profile in profiles)
{
ViewModel.Profiles.Add(new UserProfile(profile, this));
}
ViewModel.SelectedProfile = ViewModel.Profiles.Cast<UserProfile>().FirstOrDefault(x => x.UserId == AccountManager.LastOpenedUser.UserId);
if (ViewModel.SelectedProfile == null)
{
ViewModel.SelectedProfile = (UserProfile)ViewModel.Profiles.First();
if (ViewModel.SelectedProfile != null)
{
AccountManager.OpenUser(ViewModel.SelectedProfile.UserId);
}
}
var saveDataFilter = SaveDataFilter.Make(programId: default, saveType: SaveDataType.Account,
default, saveDataId: default, index: default);

View file

@ -6,8 +6,6 @@ namespace Ryujinx.Ava.UI.ViewModels
{
public class UserProfileViewModel : BaseModel, IDisposable
{
private UserProfile _selectedProfile;
public UserProfileViewModel()
{
Profiles = new ObservableCollection<BaseModel>();
@ -18,17 +16,6 @@ namespace Ryujinx.Ava.UI.ViewModels
public ObservableCollection<UserProfile> LostProfiles { get; set; }
public UserProfile SelectedProfile
{
get => _selectedProfile;
set
{
_selectedProfile = value;
OnPropertyChanged();
}
}
public void Dispose() { }
}
}

View file

@ -44,18 +44,18 @@ namespace Ryujinx.Ava.UI.Views.User
private void Grid_PointerEntered(object sender, PointerEventArgs e)
{
if (sender is Grid grid)
{
{
if (grid.DataContext is UserProfile profile)
{
profile.IsPointerOver = true;
}
}
}
private void Grid_OnPointerExited(object sender, PointerEventArgs e)
{
if (sender is Grid grid)
{
{
if (grid.DataContext is UserProfile profile)
{
profile.IsPointerOver = false;
@ -73,10 +73,8 @@ namespace Ryujinx.Ava.UI.Views.User
{
if (ViewModel.Profiles[selectedIndex] is UserProfile userProfile)
{
ViewModel.SelectedProfile = userProfile;
_parent?.AccountManager?.OpenUser(userProfile.UserId);
_parent?.AccountManager?.OpenUser(ViewModel.SelectedProfile.UserId);
foreach (BaseModel profile in ViewModel.Profiles)
{
if (profile is UserProfile uProfile)
@ -104,7 +102,7 @@ namespace Ryujinx.Ava.UI.Views.User
}
}
}
private void ManageSaves(object sender, RoutedEventArgs e)
{
_parent.ManageSaves();