update solution explorer tree colour logic

This commit is contained in:
Matt Parker
2026-01-30 22:03:59 +10:00
parent 6763560faf
commit 94379ca09a
2 changed files with 5 additions and 4 deletions

View File

@@ -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

View File

@@ -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>(sharpIdeFile));
Observable.EveryValueChanged(sharpIdeFile, file => file.Name)