Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 57fe018

Browse files
Merge branch 'fixes/changes-tree-view-unused-delegate' into fixes/changes-view-refactoring
# Conflicts: # src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ChangesetTreeView.cs
2 parents 81d66a5 + 97b77cc commit 57fe018

File tree

5 files changed

+25
-49
lines changed

5 files changed

+25
-49
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ The extension log file can be found at `~/.local/share/GitHubUnityDebug/github-u
8686

8787
##### Windows
8888

89-
The extension log file can be found at `%LOCALAPPDATA%\GitHubUnityDebug\github-unity.log`
89+
The extension log file can be found at `%LOCALAPPDATA%\GitHubUnity\github-unity.log`
9090

9191
## Building and Contributing
9292

src/GitHub.Api/UI/FileTreeNode.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Collections.Generic;
32
using System.Linq;
43

@@ -13,7 +12,6 @@ enum CommitState
1312

1413
class FileTreeNode
1514
{
16-
private readonly Action<FileTreeNode> stateChangeCallback;
1715
private List<FileTreeNode> children;
1816
private string path;
1917
private CommitState state;
@@ -24,15 +22,13 @@ class FileTreeNode
2422
public string RepositoryPath;
2523
public GitCommitTarget Target { get; set; }
2624

27-
public FileTreeNode(Action<FileTreeNode> stateChangeCallback)
25+
public FileTreeNode()
2826
{
29-
this.stateChangeCallback = stateChangeCallback;
3027
children = new List<FileTreeNode>();
3128
}
3229

33-
public FileTreeNode(string path, Action<FileTreeNode> stateChangeCallback)
30+
public FileTreeNode(string path)
3431
{
35-
this.stateChangeCallback = stateChangeCallback;
3632
this.path = path ?? "";
3733
Label = this.path;
3834
children = new List<FileTreeNode>();
@@ -106,7 +102,6 @@ public CommitState State
106102
}
107103

108104
state = value;
109-
stateChangeCallback?.Invoke(this);
110105

111106
if (children == null)
112107
{

src/GitHub.Api/UI/TreeBuilder.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace GitHub.Unity
66
{
77
static class TreeBuilder
88
{
9-
internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List<string> foldedTreeEntries, Action<FileTreeNode> stateChangeCallback)
9+
internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List<string> foldedTreeEntries)
1010
{
1111
if (String.IsNullOrEmpty(node.Label))
1212
{
@@ -33,7 +33,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
3333
if (child.Label.Equals(root))
3434
{
3535
found = true;
36-
BuildChildNode(child, node, foldedTreeEntries, stateChangeCallback);
36+
BuildChildNode(child, node, foldedTreeEntries);
3737
break;
3838
}
3939
}
@@ -42,7 +42,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
4242
if (!found)
4343
{
4444
var p = parent.RepositoryPath.ToNPath().Combine(root);
45-
BuildChildNode(parent.Add(new FileTreeNode(root, stateChangeCallback) { RepositoryPath = p }), node, foldedTreeEntries, stateChangeCallback);
45+
BuildChildNode(parent.Add(new FileTreeNode(root) { RepositoryPath = p }), node, foldedTreeEntries);
4646
}
4747
}
4848
else if (nodePath.ExtensionWithDot == ".meta")
@@ -55,7 +55,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
5555
if (child.Label.Equals(nodePath.Parent.Combine(nodePath.FileNameWithoutExtension)))
5656
{
5757
found = true;
58-
BuildChildNode(child, node, foldedTreeEntries, stateChangeCallback);
58+
BuildChildNode(child, node, foldedTreeEntries);
5959
break;
6060
}
6161
}
@@ -71,7 +71,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
7171
}
7272
}
7373

74-
internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, List<GitStatusEntry> gitStatusEntries, List<GitCommitTarget> gitCommitTargets, List<string> foldedTreeEntries, Action<FileTreeNode> stateChangeCallback, Func<string, object> iconLoaderFunc = null)
74+
internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, List<GitStatusEntry> gitStatusEntries, List<GitCommitTarget> gitCommitTargets, List<string> foldedTreeEntries, Func<string, object> iconLoaderFunc = null)
7575
{
7676
Guard.ArgumentNotNullOrEmpty(newEntries, "newEntries");
7777

@@ -117,7 +117,7 @@ internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, Lis
117117
// TODO: In stead of completely rebuilding the tree structure, figure out a way to migrate open/closed states from the old tree to the new
118118
// Build tree structure
119119

120-
var tree = new FileTreeNode(FileSystemHelpers.FindCommonPath(gitStatusEntries.Select(e => e.Path)), stateChangeCallback);
120+
var tree = new FileTreeNode(FileSystemHelpers.FindCommonPath(gitStatusEntries.Select(e => e.Path)));
121121
tree.RepositoryPath = tree.Path;
122122

123123
for (var index1 = 0; index1 < gitStatusEntries.Count; index1++)
@@ -126,13 +126,13 @@ internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, Lis
126126
var entryPath = gitStatusEntry.Path.ToNPath();
127127
if (entryPath.IsChildOf(tree.Path)) entryPath = entryPath.RelativeTo(tree.Path.ToNPath());
128128

129-
var node = new FileTreeNode(entryPath, stateChangeCallback) { Target = gitCommitTargets[index1] };
129+
var node = new FileTreeNode(entryPath) { Target = gitCommitTargets[index1] };
130130
if (!String.IsNullOrEmpty(gitStatusEntry.ProjectPath))
131131
{
132132
node.Icon = iconLoaderFunc?.Invoke(gitStatusEntry.ProjectPath);
133133
}
134134

135-
BuildChildNode(tree, node, foldedTreeEntries, stateChangeCallback);
135+
BuildChildNode(tree, node, foldedTreeEntries);
136136
}
137137

138138
return tree;

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ChangesetTreeView.cs

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ class ChangesetTreeView : Subview
1919
[SerializeField] private List<GitCommitTarget> entryCommitTargets = new List<GitCommitTarget>();
2020
[SerializeField] private List<string> foldedTreeEntries = new List<string>();
2121
[NonSerialized] private FileTreeNode tree;
22-
[NonSerialized] private Action<FileTreeNode> stateChangeCallback;
2322

2423
public override void OnGUI()
2524
{
@@ -109,7 +108,7 @@ public void UpdateEntries(IList<GitStatusEntry> newEntries)
109108
return;
110109
}
111110

112-
tree = TreeBuilder.BuildTreeRoot(newEntries, entries, entryCommitTargets, foldedTreeEntries, stateChangeCallback, AssetDatabase.GetCachedIcon);
111+
tree = TreeBuilder.BuildTreeRoot(newEntries, entries, entryCommitTargets, foldedTreeEntries, AssetDatabase.GetCachedIcon);
113112

114113
OnCommitTreeChange();
115114
}
@@ -135,25 +134,7 @@ private void TreeNode(FileTreeNode node)
135134
}
136135
if (EditorGUI.EndChangeCheck())
137136
{
138-
var filesAdded = new List<string>();
139-
var filesRemoved = new List<string>();
140-
stateChangeCallback = new Action<FileTreeNode>(s =>
141-
{
142-
if (s.State == CommitState.None)
143-
filesRemoved.Add(s.Path);
144-
else
145-
filesAdded.Add(s.Path);
146-
});
147137
node.State = toggled ? CommitState.All : CommitState.None;
148-
if (filesAdded.Count > 0)
149-
GitClient.Add(filesAdded);
150-
if (filesRemoved.Count > 0)
151-
GitClient.Remove(filesAdded);
152-
if (filesAdded.Count > 0|| filesRemoved.Count > 0)
153-
{
154-
GitClient.Status();
155-
}
156-
// we might need to run git status after these calls
157138
}
158139
}
159140

src/tests/UnitTests/UI/TreeBuilderTests.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void CanBuildTreeForSingleItem()
3333
};
3434

3535
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
36-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
36+
foldedTreeEntries);
3737

3838
gitStatusEntries.Count.Should().Be(1);
3939
gitCommitTargets.Count.Should().Be(1);
@@ -71,7 +71,7 @@ public void CanBuildTreeForSingleItemWhenProjectNestedInRepo()
7171
};
7272

7373
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
74-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
74+
foldedTreeEntries);
7575

7676
gitStatusEntries.Count.Should().Be(1);
7777
gitCommitTargets.Count.Should().Be(1);
@@ -107,7 +107,7 @@ public void CanBuildTreeForSingleItemInFolder()
107107
};
108108

109109
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
110-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
110+
foldedTreeEntries);
111111

112112
gitStatusEntries.Count.Should().Be(1);
113113
gitCommitTargets.Count.Should().Be(1);
@@ -143,7 +143,7 @@ public void CanBuildTreeForSingleItemInFolderWhenProjectNestedInRepo()
143143
};
144144

145145
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
146-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
146+
foldedTreeEntries);
147147

148148
gitStatusEntries.Count.Should().Be(1);
149149
gitCommitTargets.Count.Should().Be(1);
@@ -180,7 +180,7 @@ public void CanBuildTreeForMultipleSiblings()
180180
};
181181

182182
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
183-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
183+
foldedTreeEntries);
184184

185185
gitStatusEntries.Count.Should().Be(2);
186186
gitCommitTargets.Count.Should().Be(2);
@@ -228,7 +228,7 @@ public void CanBuildTreeForMultipleSiblingsWhenProjectNestedInRepo()
228228
};
229229

230230
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
231-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
231+
foldedTreeEntries);
232232

233233
gitStatusEntries.Count.Should().Be(2);
234234
gitCommitTargets.Count.Should().Be(2);
@@ -279,7 +279,7 @@ public void CanBuildTreeForHierarchy()
279279
};
280280

281281
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
282-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
282+
foldedTreeEntries);
283283

284284
gitStatusEntries.Count.Should().Be(5);
285285
gitCommitTargets.Count.Should().Be(5);
@@ -380,7 +380,7 @@ public void CanBuildTreeForHierarchyWhenProjectNestedInRepo()
380380
};
381381

382382
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
383-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
383+
foldedTreeEntries);
384384

385385
gitStatusEntries.Count.Should().Be(2);
386386
gitCommitTargets.Count.Should().Be(2);
@@ -439,7 +439,7 @@ public void CanBuildTreeForItemAndMetafile()
439439
};
440440

441441
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
442-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
442+
foldedTreeEntries);
443443

444444
gitStatusEntries.Count.Should().Be(2);
445445
gitCommitTargets.Count.Should().Be(2);
@@ -493,7 +493,7 @@ public void CanUpdateTreeAndMaintainSelectedState()
493493
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
494494

495495
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries1, gitStatusEntries, gitCommitTargets,
496-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
496+
foldedTreeEntries);
497497

498498
gitStatusEntries.Count.Should().Be(2);
499499
gitCommitTargets.Count.Should().Be(2);
@@ -533,7 +533,7 @@ public void CanUpdateTreeAndMaintainSelectedState()
533533
};
534534

535535
treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries2, gitStatusEntries, gitCommitTargets,
536-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
536+
foldedTreeEntries);
537537

538538
treeRootChidren = treeRoot.Children.ToArray();
539539
treeRootChidren.Length.Should().Be(2);
@@ -584,7 +584,7 @@ public void CanUpdateTreeAndMaintainFoldedState()
584584
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
585585

586586
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
587-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
587+
foldedTreeEntries);
588588

589589
gitStatusEntries.Count.Should().Be(5);
590590
gitCommitTargets.Count.Should().Be(5);
@@ -681,7 +681,7 @@ public void CanUpdateTreeAndMaintainFoldedState()
681681
foldedTreeEntries.Count.Should().Be(2);
682682

683683
treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
684-
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
684+
foldedTreeEntries);
685685

686686
gitStatusEntries.Count.Should().Be(4);
687687
gitCommitTargets.Count.Should().Be(4);

0 commit comments

Comments
 (0)