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

Commit 14d16fe

Browse files
Fixing styles that get used in the Tree
Learned a few lessons here... Style objects should only be created OnGui Textures loaded from colors have a hideflag property too
1 parent e9d487e commit 14d16fe

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/Misc/Utility.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public static Texture2D GetTextureFromColor(Color color)
4343
pix[0] = color;
4444

4545
Texture2D result = new Texture2D(1, 1);
46+
result.hideFlags = HideFlags.HideAndDontSave;
4647
result.SetPixels(pix);
4748
result.Apply();
4849

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

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public override void InitializeView(IView parent)
6363
public override void OnEnable()
6464
{
6565
base.OnEnable();
66-
UpdateTreeIconAndStyles();
66+
UpdateTreeIcons();
6767
AttachHandlers(Repository);
6868
Repository.CheckLocalAndRemoteBranchListChangedEvent(lastLocalAndRemoteBranchListChangedEvent);
6969
}
@@ -157,7 +157,7 @@ private void BuildTree()
157157
treeRemotes = new BranchesTree();
158158
treeRemotes.IsRemote = true;
159159

160-
UpdateTreeIconAndStyles();
160+
UpdateTreeIcons();
161161
}
162162

163163
localBranches.Sort(CompareBranches);
@@ -168,19 +168,30 @@ private void BuildTree()
168168
Redraw();
169169
}
170170

171-
private void UpdateTreeIconAndStyles()
171+
private void UpdateTreeIcons()
172172
{
173173
if (treeLocals != null)
174174
{
175175
treeLocals.UpdateIcons(Styles.ActiveBranchIcon, Styles.BranchIcon, Styles.FolderIcon, Styles.GlobeIcon);
176+
}
177+
178+
if (treeRemotes != null)
179+
{
180+
treeRemotes.UpdateIcons(Styles.ActiveBranchIcon, Styles.BranchIcon, Styles.FolderIcon, Styles.GlobeIcon);
181+
}
182+
}
183+
184+
private void UpdateTreeStyles()
185+
{
186+
if (treeLocals != null && treeLocals.FolderStyle == null)
187+
{
176188
treeLocals.FolderStyle = Styles.Foldout;
177189
treeLocals.TreeNodeStyle = Styles.TreeNode;
178190
treeLocals.ActiveTreeNodeStyle = Styles.TreeNodeActive;
179191
}
180192

181-
if (treeRemotes != null)
193+
if (treeRemotes != null && treeRemotes.FolderStyle == null)
182194
{
183-
treeRemotes.UpdateIcons(Styles.ActiveBranchIcon, Styles.BranchIcon, Styles.FolderIcon, Styles.GlobeIcon);
184195
treeRemotes.FolderStyle = Styles.Foldout;
185196
treeRemotes.TreeNodeStyle = Styles.TreeNode;
186197
treeRemotes.ActiveTreeNodeStyle = Styles.TreeNodeActive;
@@ -304,6 +315,8 @@ private void OnTreeGUI(Rect rect)
304315
var initialRect = rect;
305316
var treeHadFocus = treeLocals.SelectedNode != null;
306317

318+
UpdateTreeStyles();
319+
307320
rect = treeLocals.Render(rect, scroll,
308321
node =>{ },
309322
node => {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ public abstract class Tree
2020
[SerializeField] public Rect Margin = new Rect();
2121
[SerializeField] public Rect Padding = new Rect();
2222

23-
[SerializeField] public GUIStyle FolderStyle;
24-
[SerializeField] public GUIStyle TreeNodeStyle;
25-
[SerializeField] public GUIStyle ActiveTreeNodeStyle;
23+
[NonSerialized] public GUIStyle FolderStyle;
24+
[NonSerialized] public GUIStyle TreeNodeStyle;
25+
[NonSerialized] public GUIStyle ActiveTreeNodeStyle;
2626

2727
[SerializeField] private List<TreeNode> nodes = new List<TreeNode>();
2828
[SerializeField] private TreeNode selectedNode = null;

0 commit comments

Comments
 (0)