diff --git a/MareSynchronos/UI/Components/GroupPanel.cs b/MareSynchronos/UI/Components/GroupPanel.cs index 68e4ad6..fea6124 100644 --- a/MareSynchronos/UI/Components/GroupPanel.cs +++ b/MareSynchronos/UI/Components/GroupPanel.cs @@ -418,11 +418,23 @@ internal sealed class GroupPanel ImGui.Indent(20); if (_expandedGroupState[groupDto.GID]) { - var sortedPairs = pairsInGroup - .OrderByDescending(u => string.Equals(u.UserData.UID, groupDto.OwnerUID, StringComparison.Ordinal)) - .ThenByDescending(u => u.GroupPair[groupDto].GroupPairStatusInfo.IsModerator()) - .ThenByDescending(u => u.GroupPair[groupDto].GroupPairStatusInfo.IsPinned()) - .ThenBy(u => u.GetPairSortKey(), StringComparer.OrdinalIgnoreCase); + IOrderedEnumerable sortedPairs; + if (!_mareConfig.Current.SortSyncshellsByVRAM) + { + sortedPairs = pairsInGroup + .OrderByDescending(u => string.Equals(u.UserData.UID, groupDto.OwnerUID, StringComparison.Ordinal)) + .ThenByDescending(u => u.GroupPair[groupDto].GroupPairStatusInfo.IsModerator()) + .ThenByDescending(u => u.GroupPair[groupDto].GroupPairStatusInfo.IsPinned()) + .ThenBy(u => u.GetPairSortKey(), StringComparer.OrdinalIgnoreCase); + } + else + { + sortedPairs = pairsInGroup + .OrderByDescending(u => string.Equals(u.UserData.UID, groupDto.OwnerUID, StringComparison.Ordinal)) + .ThenByDescending(u => u.GroupPair[groupDto].GroupPairStatusInfo.IsModerator()) + .ThenByDescending(u => u.GroupPair[groupDto].GroupPairStatusInfo.IsPinned()) + .ThenByDescending(u => u.LastAppliedApproximateVRAMBytes); + } var visibleUsers = new List(); var onlineUsers = new List();