Alphabetically sorted guidebook entries (#24963)
* - Renamed GetSortedRootEntries to GetSortedEntries and added child sorting logic - Removed unessesary Tree.SetAllExpanded(true) call in RepopulateTree * Adding back deleted setallexpanded call to check if test passes --------- Co-authored-by: Your Name <you@example.com>
This commit is contained in:
@@ -98,22 +98,33 @@ public sealed partial class GuidebookWindow : FancyWindow, ILinkClickHandler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<GuideEntry> GetSortedRootEntries(List<string>? rootEntries)
|
private IEnumerable<GuideEntry> GetSortedEntries(List<string>? rootEntries)
|
||||||
{
|
{
|
||||||
if (rootEntries == null)
|
if (rootEntries == null)
|
||||||
{
|
{
|
||||||
HashSet<string> entries = new(_entries.Keys);
|
HashSet<string> entries = new(_entries.Keys);
|
||||||
foreach (var entry in _entries.Values)
|
foreach (var entry in _entries.Values)
|
||||||
{
|
{
|
||||||
|
if (entry.Children.Count > 0)
|
||||||
|
{
|
||||||
|
var sortedChildren = entry.Children
|
||||||
|
.Select(childId => _entries[childId])
|
||||||
|
.OrderBy(childEntry => childEntry.Priority)
|
||||||
|
.ThenBy(childEntry => Loc.GetString(childEntry.Name))
|
||||||
|
.Select(childEntry => childEntry.Id)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
entry.Children = sortedChildren;
|
||||||
|
}
|
||||||
entries.ExceptWith(entry.Children);
|
entries.ExceptWith(entry.Children);
|
||||||
}
|
}
|
||||||
rootEntries = entries.ToList();
|
rootEntries = entries.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return rootEntries
|
return rootEntries
|
||||||
.Select(x => _entries[x])
|
.Select(rootEntryId => _entries[rootEntryId])
|
||||||
.OrderBy(x => x.Priority)
|
.OrderBy(rootEntry => rootEntry.Priority)
|
||||||
.ThenBy(x => Loc.GetString(x.Name));
|
.ThenBy(rootEntry => Loc.GetString(rootEntry.Name));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RepopulateTree(List<string>? roots = null, string? forcedRoot = null)
|
private void RepopulateTree(List<string>? roots = null, string? forcedRoot = null)
|
||||||
@@ -123,7 +134,7 @@ public sealed partial class GuidebookWindow : FancyWindow, ILinkClickHandler
|
|||||||
HashSet<string> addedEntries = new();
|
HashSet<string> addedEntries = new();
|
||||||
|
|
||||||
TreeItem? parent = forcedRoot == null ? null : AddEntry(forcedRoot, null, addedEntries);
|
TreeItem? parent = forcedRoot == null ? null : AddEntry(forcedRoot, null, addedEntries);
|
||||||
foreach (var entry in GetSortedRootEntries(roots))
|
foreach (var entry in GetSortedEntries(roots))
|
||||||
{
|
{
|
||||||
AddEntry(entry.Id, parent, addedEntries);
|
AddEntry(entry.Id, parent, addedEntries);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user