@@ -120,28 +120,19 @@ public void Run(List<Models.Branch> branches, List<Models.Remote> remotes, bool
120120 folders . Clear ( ) ;
121121
122122 if ( _localSortMode == Models . BranchSortMode . Name )
123- {
124123 SortNodesByName ( _locals ) ;
125- }
126124 else
127- {
128- SetTimeToSortRecusive ( _locals ) ;
129125 SortNodesByTime ( _locals ) ;
130- }
131126
132127 if ( _remoteSortMode == Models . BranchSortMode . Name )
133- {
134128 SortNodesByName ( _remotes ) ;
135- }
136129 else
137- {
138- SetTimeToSortRecusive ( _remotes ) ;
139130 SortNodesByTime ( _remotes ) ;
140- }
141131 }
142132
143133 private void MakeBranchNode ( Models . Branch branch , List < BranchTreeNode > roots , Dictionary < string , BranchTreeNode > folders , string prefix , bool bForceExpanded )
144134 {
135+ var time = branch . CommitterDate ;
145136 var fullpath = $ "{ prefix } /{ branch . Name } ";
146137 var sepIdx = branch . Name . IndexOf ( '/' , StringComparison . Ordinal ) ;
147138 if ( sepIdx == - 1 || branch . IsDetachedHead )
@@ -152,7 +143,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
152143 Path = fullpath ,
153144 Backend = branch ,
154145 IsExpanded = false ,
155- TimeToSort = branch . CommitterDate ,
146+ TimeToSort = time ,
156147 } ) ;
157148 return ;
158149 }
@@ -167,6 +158,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
167158 if ( folders . TryGetValue ( folder , out var val ) )
168159 {
169160 lastFolder = val ;
161+ lastFolder . TimeToSort = Math . Max ( lastFolder . TimeToSort , time ) ;
170162 if ( ! lastFolder . IsExpanded )
171163 lastFolder . IsExpanded |= ( branch . IsCurrent || _expanded . Contains ( folder ) ) ;
172164 }
@@ -177,6 +169,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
177169 Name = name ,
178170 Path = folder ,
179171 IsExpanded = bForceExpanded || branch . IsCurrent || _expanded . Contains ( folder ) ,
172+ TimeToSort = time ,
180173 } ;
181174 roots . Add ( lastFolder ) ;
182175 folders . Add ( folder , lastFolder ) ;
@@ -188,6 +181,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
188181 Name = name ,
189182 Path = folder ,
190183 IsExpanded = bForceExpanded || branch . IsCurrent || _expanded . Contains ( folder ) ,
184+ TimeToSort = time ,
191185 } ;
192186 lastFolder . Children . Add ( cur ) ;
193187 folders . Add ( folder , cur ) ;
@@ -204,7 +198,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
204198 Path = fullpath ,
205199 Backend = branch ,
206200 IsExpanded = false ,
207- TimeToSort = branch . CommitterDate ,
201+ TimeToSort = time ,
208202 } ) ;
209203 }
210204
@@ -253,28 +247,6 @@ private void SortNodesByTime(List<BranchTreeNode> nodes)
253247 SortNodesByTime ( node . Children ) ;
254248 }
255249
256- private ulong SetTimeToSortRecusive ( List < BranchTreeNode > nodes )
257- {
258- var recent = ( ulong ) 0 ;
259-
260- foreach ( var node in nodes )
261- {
262- if ( node . Backend is Models . Branch )
263- {
264- recent = Math . Max ( recent , node . TimeToSort ) ;
265- continue ;
266- }
267-
268- var time = SetTimeToSortRecusive ( node . Children ) ;
269- recent = Math . Max ( recent , time ) ;
270-
271- if ( node . Backend is not Models . Remote )
272- node . TimeToSort = time ;
273- }
274-
275- return recent ;
276- }
277-
278250 private readonly Models . BranchSortMode _localSortMode = Models . BranchSortMode . Name ;
279251 private readonly Models . BranchSortMode _remoteSortMode = Models . BranchSortMode . Name ;
280252 private readonly List < BranchTreeNode > _locals = new List < BranchTreeNode > ( ) ;
0 commit comments