Skip to content

Commit 464fe74

Browse files
committed
code_review: commit b969ac1
- The return code of `AutoRemoveInvalidNode` is never used - It's not necessary to sort all nodes after re-scan default clone dir. Because `FindOrAddNodeByRepositoryPath` makes sure added node is ordered - Add a new parameter `save` to `FindOrAddNodeByRepositoryPath` method, and disable it while scanning. Instead, we will save it after scan finished. Signed-off-by: leo <[email protected]>
1 parent b969ac1 commit 464fe74

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

src/ViewModels/Preferences.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -453,17 +453,12 @@ public void SortNodes(List<RepositoryNode> collection)
453453
});
454454
}
455455

456-
public void SortAllNodes()
457-
{
458-
SortNodesRecursive(RepositoryNodes);
459-
}
460-
461456
public RepositoryNode FindNode(string id)
462457
{
463458
return FindNodeRecursive(id, RepositoryNodes);
464459
}
465460

466-
public RepositoryNode FindOrAddNodeByRepositoryPath(string repo, RepositoryNode parent, bool shouldMoveNode)
461+
public RepositoryNode FindOrAddNodeByRepositoryPath(string repo, RepositoryNode parent, bool shouldMoveNode, bool save = true)
467462
{
468463
var normalized = repo.Replace('\\', '/').TrimEnd('/');
469464

@@ -478,11 +473,11 @@ public RepositoryNode FindOrAddNodeByRepositoryPath(string repo, RepositoryNode
478473
IsRepository = true,
479474
};
480475

481-
AddNode(node, parent, true);
476+
AddNode(node, parent, save);
482477
}
483478
else if (shouldMoveNode)
484479
{
485-
MoveNode(node, parent, true);
480+
MoveNode(node, parent, save);
486481
}
487482

488483
return node;
@@ -514,13 +509,12 @@ public void SortByRenamedNode(RepositoryNode node)
514509
{
515510
var container = FindNodeContainer(node, RepositoryNodes);
516511
SortNodes(container);
517-
518512
Save();
519513
}
520514

521-
public bool AutoRemoveInvalidNode()
515+
public void AutoRemoveInvalidNode()
522516
{
523-
return RemoveInvalidRepositoriesRecursive(RepositoryNodes);
517+
RemoveInvalidRepositoriesRecursive(RepositoryNodes);
524518
}
525519

526520
public void Save()

src/ViewModels/ScanRepositories.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,17 @@ public override Task<bool> Sure()
5353
var parent = new DirectoryInfo(f.Path).Parent!.FullName.Replace('\\', '/').TrimEnd('/');
5454
if (parent.Equals(normalizedRoot, StringComparison.Ordinal))
5555
{
56-
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, null, false);
56+
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, null, false, false);
5757
}
5858
else if (parent.StartsWith(normalizedRoot, StringComparison.Ordinal))
5959
{
6060
var relative = parent.Substring(normalizedRoot.Length).TrimStart('/');
6161
var group = FindOrCreateGroupRecursive(Preferences.Instance.RepositoryNodes, relative);
62-
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, group, false);
62+
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, group, false, false);
6363
}
6464
}
6565

6666
Preferences.Instance.AutoRemoveInvalidNode();
67-
68-
// Sort & Save unconditionally after a complete rescan.
69-
Preferences.Instance.SortAllNodes();
7067
Preferences.Instance.Save();
7168

7269
Welcome.Instance.Refresh();

0 commit comments

Comments
 (0)