From 94379ca09a0f16b36e2d9597ed38a23e8d150dd7 Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Fri, 30 Jan 2026 22:03:59 +1000 Subject: [PATCH] update solution explorer tree colour logic --- src/SharpIDE.Godot/Features/Git/GitColours.cs | 6 +++--- .../Features/SolutionExplorer/SolutionExplorerPanel.cs | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/SharpIDE.Godot/Features/Git/GitColours.cs b/src/SharpIDE.Godot/Features/Git/GitColours.cs index 11501b3..3a8582a 100644 --- a/src/SharpIDE.Godot/Features/Git/GitColours.cs +++ b/src/SharpIDE.Godot/Features/Git/GitColours.cs @@ -17,12 +17,12 @@ public static class GitColours public static readonly Color GitEditedFileTransparentColour = new Color(EditedFileColourHexCode, 0.4f); public static readonly Color GitUnalteredFileTransparentColour = new Color(UnalteredFileColourHexCode, 0.4f); - public static Color GetColorForGitFileStatus(GitFileStatus fileStatus) => fileStatus switch + public static Color? GetColorForGitFileStatus(GitFileStatus fileStatus) => fileStatus switch { GitFileStatus.Added => GitNewFileColour, GitFileStatus.Modified => GitEditedFileColour, - GitFileStatus.Unaltered => GitUnalteredFileColour, - _ => GitUnalteredFileColour + GitFileStatus.Unaltered => null, + _ => null }; public static Color GetColorForGitLineStatus(GitLineStatus lineStatus) => lineStatus switch diff --git a/src/SharpIDE.Godot/Features/SolutionExplorer/SolutionExplorerPanel.cs b/src/SharpIDE.Godot/Features/SolutionExplorer/SolutionExplorerPanel.cs index b786106..2545e7f 100644 --- a/src/SharpIDE.Godot/Features/SolutionExplorer/SolutionExplorerPanel.cs +++ b/src/SharpIDE.Godot/Features/SolutionExplorer/SolutionExplorerPanel.cs @@ -319,7 +319,8 @@ public partial class SolutionExplorerPanel : MarginContainer var fileItem = tree.CreateItem(parent, newStartingIndex); fileItem.SetText(0, sharpIdeFile.Name); fileItem.SetIconsForFileExtension(sharpIdeFile); - fileItem.SetCustomColor(0, GitColours.GetColorForGitFileStatus(sharpIdeFile.GitStatus)); + if (GitColours.GetColorForGitFileStatus(sharpIdeFile.GitStatus) is { } notnullColor) fileItem.SetCustomColor(0, notnullColor); + else fileItem.ClearCustomColor(0); fileItem.SetMetadata(0, new RefCountedContainer(sharpIdeFile)); Observable.EveryValueChanged(sharpIdeFile, file => file.Name)