mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-21 02:15:00 +00:00
Fix for missing case of numeric sorting (#597)
Commit 76a7a2228f
added "numeric sorting for all trees" (#597) but missed a case - for root items in RevisionFileTreeNode tree, which was still using ordinal string.Compare().
Fixed by refactoring the node sorting into a separate method, to make sure it's done the same way in both instances.
This commit is contained in:
parent
7bba40d03f
commit
4fd921ea87
1 changed files with 12 additions and 12 deletions
|
@ -270,12 +270,7 @@ namespace SourceGit.Views
|
||||||
foreach (var obj in objects)
|
foreach (var obj in objects)
|
||||||
_tree.Add(new ViewModels.RevisionFileTreeNode { Backend = obj });
|
_tree.Add(new ViewModels.RevisionFileTreeNode { Backend = obj });
|
||||||
|
|
||||||
_tree.Sort((l, r) =>
|
SortNodes(_tree);
|
||||||
{
|
|
||||||
if (l.IsFolder == r.IsFolder)
|
|
||||||
return string.Compare(l.Name, r.Name, StringComparison.Ordinal);
|
|
||||||
return l.IsFolder ? -1 : 1;
|
|
||||||
});
|
|
||||||
|
|
||||||
var topTree = new List<ViewModels.RevisionFileTreeNode>();
|
var topTree = new List<ViewModels.RevisionFileTreeNode>();
|
||||||
MakeRows(topTree, _tree, 0);
|
MakeRows(topTree, _tree, 0);
|
||||||
|
@ -341,12 +336,7 @@ namespace SourceGit.Views
|
||||||
foreach (var obj in objects)
|
foreach (var obj in objects)
|
||||||
node.Children.Add(new ViewModels.RevisionFileTreeNode() { Backend = obj });
|
node.Children.Add(new ViewModels.RevisionFileTreeNode() { Backend = obj });
|
||||||
|
|
||||||
node.Children.Sort((l, r) =>
|
SortNodes(node.Children);
|
||||||
{
|
|
||||||
if (l.IsFolder == r.IsFolder)
|
|
||||||
return Models.NumericSort.Compare(l.Name, r.Name);
|
|
||||||
return l.IsFolder ? -1 : 1;
|
|
||||||
});
|
|
||||||
|
|
||||||
return node.Children;
|
return node.Children;
|
||||||
}
|
}
|
||||||
|
@ -365,6 +355,16 @@ namespace SourceGit.Views
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SortNodes(List<ViewModels.RevisionFileTreeNode> nodes)
|
||||||
|
{
|
||||||
|
nodes.Sort((l, r) =>
|
||||||
|
{
|
||||||
|
if (l.IsFolder == r.IsFolder)
|
||||||
|
return Models.NumericSort.Compare(l.Name, r.Name);
|
||||||
|
return l.IsFolder ? -1 : 1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private List<ViewModels.RevisionFileTreeNode> _tree = [];
|
private List<ViewModels.RevisionFileTreeNode> _tree = [];
|
||||||
private AvaloniaList<ViewModels.RevisionFileTreeNode> _rows = [];
|
private AvaloniaList<ViewModels.RevisionFileTreeNode> _rows = [];
|
||||||
private bool _disableSelectionChangingEvent = false;
|
private bool _disableSelectionChangingEvent = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue