@@ -436,16 +436,26 @@ public void AddNode(RepositoryNode node, RepositoryNode to, bool save)
436
436
{
437
437
var collection = to == null ? RepositoryNodes : to . SubNodes ;
438
438
collection . Add ( node ) ;
439
- collection . Sort ( ( l , r ) =>
439
+ SortNodes ( collection ) ;
440
+
441
+ if ( save )
442
+ Save ( ) ;
443
+ }
444
+
445
+ public void SortNodes ( List < RepositoryNode > collection )
446
+ {
447
+ collection ? . Sort ( ( l , r ) =>
440
448
{
441
449
if ( l . IsRepository != r . IsRepository )
442
450
return l . IsRepository ? 1 : - 1 ;
443
451
444
452
return string . Compare ( l . Name , r . Name , StringComparison . Ordinal ) ;
445
453
} ) ;
454
+ }
446
455
447
- if ( save )
448
- Save ( ) ;
456
+ public void SortAllNodes ( )
457
+ {
458
+ SortNodesRecursive ( RepositoryNodes ) ;
449
459
}
450
460
451
461
public RepositoryNode FindNode ( string id )
@@ -503,22 +513,14 @@ public void RemoveNode(RepositoryNode node, bool save)
503
513
public void SortByRenamedNode ( RepositoryNode node )
504
514
{
505
515
var container = FindNodeContainer ( node , RepositoryNodes ) ;
506
- container ? . Sort ( ( l , r ) =>
507
- {
508
- if ( l . IsRepository != r . IsRepository )
509
- return l . IsRepository ? 1 : - 1 ;
510
-
511
- return string . Compare ( l . Name , r . Name , StringComparison . Ordinal ) ;
512
- } ) ;
516
+ SortNodes ( container ) ;
513
517
514
518
Save ( ) ;
515
519
}
516
520
517
- public void AutoRemoveInvalidNode ( )
521
+ public bool AutoRemoveInvalidNode ( )
518
522
{
519
- var changed = RemoveInvalidRepositoriesRecursive ( RepositoryNodes ) ;
520
- if ( changed )
521
- Save ( ) ;
523
+ return RemoveInvalidRepositoriesRecursive ( RepositoryNodes ) ;
522
524
}
523
525
524
526
public void Save ( )
@@ -588,6 +590,13 @@ private void PrepareWorkspaces()
588
590
}
589
591
}
590
592
593
+ private void SortNodesRecursive ( List < RepositoryNode > collection )
594
+ {
595
+ SortNodes ( collection ) ;
596
+ foreach ( var node in collection )
597
+ SortNodesRecursive ( node . SubNodes ) ;
598
+ }
599
+
591
600
private RepositoryNode FindNodeRecursive ( string id , List < RepositoryNode > collection )
592
601
{
593
602
foreach ( var node in collection )
0 commit comments