From 785080389ef2f1da06f9049c3aaaf19f88f9846d Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Mon, 3 Nov 2025 20:10:49 +1000 Subject: [PATCH] display installed version in details --- .../Features/Nuget/NugetPackageDetails.cs | 10 +++++++--- src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs | 4 ++-- .../Features/Nuget/PackageDetailsProjectEntry.cs | 6 ++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/SharpIDE.Godot/Features/Nuget/NugetPackageDetails.cs b/src/SharpIDE.Godot/Features/Nuget/NugetPackageDetails.cs index f833546..66178f3 100644 --- a/src/SharpIDE.Godot/Features/Nuget/NugetPackageDetails.cs +++ b/src/SharpIDE.Godot/Features/Nuget/NugetPackageDetails.cs @@ -1,4 +1,5 @@ using Godot; +using SharpIDE.Application.Features.Evaluation; using SharpIDE.Application.Features.Nuget; using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; @@ -43,6 +44,7 @@ public partial class NugetPackageDetails : VBoxContainer }); var (iconBytes, iconFormat) = await iconTask; var imageTexture = ImageTextureHelper.GetImageTextureFromBytes(iconBytes, iconFormat) ?? _defaultIconTextureRect; + await SetProjects(package.InstalledNugetPackageInfo!.ProjectPackageReferences); await this.InvokeAsync(() => { _packageIconTextureRect.Texture = imageTexture; @@ -58,12 +60,14 @@ public partial class NugetPackageDetails : VBoxContainer }); } - public async Task SetProjects(HashSet projects) + public async Task SetProjects(List projectPackageReferences) { - var scenes = projects.Select(s => + var scenes = projectPackageReferences.Select(s => { var scene = _packageDetailsProjectEntryScene.Instantiate(); - scene.ProjectModel = s; + scene.ProjectModel = s.Project; + scene.InstalledVersion = s.InstalledVersion; + scene.IsTransitive = s.IsTransitive; return scene; }).ToList(); await this.InvokeAsync(() => diff --git a/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs b/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs index ab8a256..65d1780 100644 --- a/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs +++ b/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs @@ -72,7 +72,7 @@ public partial class NugetPanel : Control { if (_solution is null) throw new InvalidOperationException("Solution is null but should not be"); _ = Task.GodotRun(() => SetSolutionOrProjectNameLabels(slnOrProject)); - _ = Task.GodotRun(() => SetDetailsProjects(slnOrProject)); + //_ = Task.GodotRun(() => SetDetailsProjects(slnOrProject)); _ = Task.GodotRun(() => PopulateInstalledPackages(slnOrProject)); _ = Task.GodotRun(PopulateSearchResults); }); @@ -91,7 +91,7 @@ public partial class NugetPanel : Control SharpIdeProjectModel projectModel => [projectModel], _ => throw new InvalidOperationException("Unknown solution or project type") }; - await _nugetPackageDetails.SetProjects(projects); + //await _nugetPackageDetails.SetProjects(projects); } private async Task SetSolutionOrProjectNameLabels(ISolutionOrProject slnOrProject) diff --git a/src/SharpIDE.Godot/Features/Nuget/PackageDetailsProjectEntry.cs b/src/SharpIDE.Godot/Features/Nuget/PackageDetailsProjectEntry.cs index 7442795..deed7aa 100644 --- a/src/SharpIDE.Godot/Features/Nuget/PackageDetailsProjectEntry.cs +++ b/src/SharpIDE.Godot/Features/Nuget/PackageDetailsProjectEntry.cs @@ -1,4 +1,5 @@ using Godot; +using NuGet.Versioning; using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; namespace SharpIDE.Godot.Features.Nuget; @@ -9,7 +10,8 @@ public partial class PackageDetailsProjectEntry : MarginContainer private Label _installedVersionLabel = null!; public SharpIdeProjectModel ProjectModel { get; set; } = null!; - public string InstalledVersion { get; set; } = string.Empty; + public NuGetVersion? InstalledVersion { get; set; } + public bool IsTransitive { get; set; } public override void _Ready() { _projectNameLabel = GetNode