From 5d9740ac7ce8464a26a01618e56c00fc7e37d639 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 26 Aug 2025 18:11:03 +0800 Subject: [PATCH] ux: change icon color for worktree-linked branch (#1761) Signed-off-by: leo --- src/Views/BranchTree.axaml | 19 ++++++++++--------- src/Views/BranchTree.axaml.cs | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/Views/BranchTree.axaml b/src/Views/BranchTree.axaml index faea76b6..d4127d51 100644 --- a/src/Views/BranchTree.axaml +++ b/src/Views/BranchTree.axaml @@ -43,19 +43,20 @@ - - - - - - + + + - - - + + + + + + + diff --git a/src/Views/BranchTree.axaml.cs b/src/Views/BranchTree.axaml.cs index 5704ef45..9fd4963e 100644 --- a/src/Views/BranchTree.axaml.cs +++ b/src/Views/BranchTree.axaml.cs @@ -50,25 +50,27 @@ namespace SourceGit.Views if (node.Backend is Models.Remote) { - CreateContent(new Thickness(0, 0, 0, 0), "Icons.Remote", false); + CreateContent(new Thickness(0, 0, 0, 0), "Icons.Remote"); } else if (node.Backend is Models.Branch branch) { if (branch.IsCurrent) - CreateContent(new Thickness(0, 0, 0, 0), "Icons.CheckCircled", true); + CreateContent(new Thickness(0, 0, 0, 0), "Icons.CheckCircled", Brushes.Green); + else if (branch.IsLocal && !string.IsNullOrEmpty(branch.WorktreePath)) + CreateContent(new Thickness(2, 0, 0, 0), "Icons.Branch", Brushes.Cyan); else - CreateContent(new Thickness(2, 0, 0, 0), "Icons.Branch", false); + CreateContent(new Thickness(2, 0, 0, 0), "Icons.Branch"); } else { if (node.IsExpanded) - CreateContent(new Thickness(0, 2, 0, 0), "Icons.Folder.Open", false); + CreateContent(new Thickness(0, 2, 0, 0), "Icons.Folder.Open"); else - CreateContent(new Thickness(0, 2, 0, 0), "Icons.Folder", false); + CreateContent(new Thickness(0, 2, 0, 0), "Icons.Folder"); } } - private void CreateContent(Thickness margin, string iconKey, bool highlight) + private void CreateContent(Thickness margin, string iconKey, IBrush fill = null) { if (this.FindResource(iconKey) is not StreamGeometry geo) return; @@ -83,8 +85,8 @@ namespace SourceGit.Views Data = geo, }; - if (highlight) - path.Fill = Brushes.Green; + if (fill != null) + path.Fill = fill; Content = path; }