@@ -120,28 +120,19 @@ public void Run(List<Models.Branch> branches, List<Models.Remote> remotes, bool
120
120
folders . Clear ( ) ;
121
121
122
122
if ( _localSortMode == Models . BranchSortMode . Name )
123
- {
124
123
SortNodesByName ( _locals ) ;
125
- }
126
124
else
127
- {
128
- SetTimeToSortRecusive ( _locals ) ;
129
125
SortNodesByTime ( _locals ) ;
130
- }
131
126
132
127
if ( _remoteSortMode == Models . BranchSortMode . Name )
133
- {
134
128
SortNodesByName ( _remotes ) ;
135
- }
136
129
else
137
- {
138
- SetTimeToSortRecusive ( _remotes ) ;
139
130
SortNodesByTime ( _remotes ) ;
140
- }
141
131
}
142
132
143
133
private void MakeBranchNode ( Models . Branch branch , List < BranchTreeNode > roots , Dictionary < string , BranchTreeNode > folders , string prefix , bool bForceExpanded )
144
134
{
135
+ var time = branch . CommitterDate ;
145
136
var fullpath = $ "{ prefix } /{ branch . Name } ";
146
137
var sepIdx = branch . Name . IndexOf ( '/' , StringComparison . Ordinal ) ;
147
138
if ( sepIdx == - 1 || branch . IsDetachedHead )
@@ -152,7 +143,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
152
143
Path = fullpath ,
153
144
Backend = branch ,
154
145
IsExpanded = false ,
155
- TimeToSort = branch . CommitterDate ,
146
+ TimeToSort = time ,
156
147
} ) ;
157
148
return ;
158
149
}
@@ -167,6 +158,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
167
158
if ( folders . TryGetValue ( folder , out var val ) )
168
159
{
169
160
lastFolder = val ;
161
+ lastFolder . TimeToSort = Math . Max ( lastFolder . TimeToSort , time ) ;
170
162
if ( ! lastFolder . IsExpanded )
171
163
lastFolder . IsExpanded |= ( branch . IsCurrent || _expanded . Contains ( folder ) ) ;
172
164
}
@@ -177,6 +169,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
177
169
Name = name ,
178
170
Path = folder ,
179
171
IsExpanded = bForceExpanded || branch . IsCurrent || _expanded . Contains ( folder ) ,
172
+ TimeToSort = time ,
180
173
} ;
181
174
roots . Add ( lastFolder ) ;
182
175
folders . Add ( folder , lastFolder ) ;
@@ -188,6 +181,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
188
181
Name = name ,
189
182
Path = folder ,
190
183
IsExpanded = bForceExpanded || branch . IsCurrent || _expanded . Contains ( folder ) ,
184
+ TimeToSort = time ,
191
185
} ;
192
186
lastFolder . Children . Add ( cur ) ;
193
187
folders . Add ( folder , cur ) ;
@@ -204,7 +198,7 @@ private void MakeBranchNode(Models.Branch branch, List<BranchTreeNode> roots, Di
204
198
Path = fullpath ,
205
199
Backend = branch ,
206
200
IsExpanded = false ,
207
- TimeToSort = branch . CommitterDate ,
201
+ TimeToSort = time ,
208
202
} ) ;
209
203
}
210
204
@@ -253,28 +247,6 @@ private void SortNodesByTime(List<BranchTreeNode> nodes)
253
247
SortNodesByTime ( node . Children ) ;
254
248
}
255
249
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
-
278
250
private readonly Models . BranchSortMode _localSortMode = Models . BranchSortMode . Name ;
279
251
private readonly Models . BranchSortMode _remoteSortMode = Models . BranchSortMode . Name ;
280
252
private readonly List < BranchTreeNode > _locals = new List < BranchTreeNode > ( ) ;
0 commit comments