Skip to content

Commit 7028e08

Browse files
committed
enhance: remove invalid expanded node records in repository's settings
1 parent ec94c8c commit 7028e08

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/ViewModels/BranchTreeNode.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class Builder
5858
{
5959
public List<BranchTreeNode> Locals => _locals;
6060
public List<BranchTreeNode> Remotes => _remotes;
61+
public List<string> InvalidExpandedNodes => _invalidExpandedNodes;
6162

6263
public void SetExpandedNodes(List<string> expanded)
6364
{
@@ -98,6 +99,12 @@ public void Run(List<Models.Branch> branches, List<Models.Remote> remotes, bool
9899
}
99100
}
100101

102+
foreach (var path in _expanded)
103+
{
104+
if (!folders.ContainsKey(path))
105+
_invalidExpandedNodes.Add(path);
106+
}
107+
101108
folders.Clear();
102109
SortNodes(_locals);
103110
SortNodes(_remotes);
@@ -188,6 +195,7 @@ private void SortNodes(List<BranchTreeNode> nodes)
188195

189196
private readonly List<BranchTreeNode> _locals = new List<BranchTreeNode>();
190197
private readonly List<BranchTreeNode> _remotes = new List<BranchTreeNode>();
198+
private readonly List<string> _invalidExpandedNodes = new List<string>();
191199
private readonly HashSet<string> _expanded = new HashSet<string>();
192200
}
193201
}

src/ViewModels/Repository.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2088,6 +2088,9 @@ private BranchTreeNode.Builder BuildBranchTree(List<Models.Branch> branches, Lis
20882088
{
20892089
builder.SetExpandedNodes(_settings.ExpandedBranchNodesInSideBar);
20902090
builder.Run(branches, remotes, false);
2091+
2092+
foreach (var invalid in builder.InvalidExpandedNodes)
2093+
_settings.ExpandedBranchNodesInSideBar.Remove(invalid);
20912094
}
20922095
else
20932096
{

0 commit comments

Comments
 (0)