add icons

This commit is contained in:
Matt Parker
2025-11-02 23:33:19 +10:00
parent ba2b4fb5eb
commit 9db774eb56
2 changed files with 14 additions and 3 deletions

View File

@@ -10,6 +10,7 @@ public partial class NugetPanel : Control
private VBoxContainer _installedPackagesVboxContainer = null!; private VBoxContainer _installedPackagesVboxContainer = null!;
private VBoxContainer _implicitlyInstalledPackagesItemList = null!; private VBoxContainer _implicitlyInstalledPackagesItemList = null!;
private VBoxContainer _availablePackagesItemList = null!; private VBoxContainer _availablePackagesItemList = null!;
private OptionButton _solutionOrProjectOptionButton = null!;
private NugetPackageDetails _nugetPackageDetails = null!; private NugetPackageDetails _nugetPackageDetails = null!;
@@ -18,6 +19,7 @@ public partial class NugetPanel : Control
[Inject] private readonly NugetClientService _nugetClientService = null!; [Inject] private readonly NugetClientService _nugetClientService = null!;
private readonly PackedScene _packageEntryScene = ResourceLoader.Load<PackedScene>("uid://cqc2xlt81ju8s"); private readonly PackedScene _packageEntryScene = ResourceLoader.Load<PackedScene>("uid://cqc2xlt81ju8s");
private readonly Texture2D _csprojIcon = ResourceLoader.Load<Texture2D>("uid://cqt30ma6xgder");
private IdePackageResult? _selectedPackage; private IdePackageResult? _selectedPackage;
@@ -26,6 +28,7 @@ public partial class NugetPanel : Control
_installedPackagesVboxContainer = GetNode<VBoxContainer>("%InstalledPackagesVBoxContainer"); _installedPackagesVboxContainer = GetNode<VBoxContainer>("%InstalledPackagesVBoxContainer");
_implicitlyInstalledPackagesItemList = GetNode<VBoxContainer>("%ImplicitlyInstalledPackagesVBoxContainer"); _implicitlyInstalledPackagesItemList = GetNode<VBoxContainer>("%ImplicitlyInstalledPackagesVBoxContainer");
_availablePackagesItemList = GetNode<VBoxContainer>("%AvailablePackagesVBoxContainer"); _availablePackagesItemList = GetNode<VBoxContainer>("%AvailablePackagesVBoxContainer");
_solutionOrProjectOptionButton = GetNode<OptionButton>("%SolutionOrProjectOptionButton");
_nugetPackageDetails = GetNode<NugetPackageDetails>("%NugetPackageDetails"); _nugetPackageDetails = GetNode<NugetPackageDetails>("%NugetPackageDetails");
_nugetPackageDetails.Visible = false; _nugetPackageDetails.Visible = false;
_installedPackagesVboxContainer.QueueFreeChildren(); _installedPackagesVboxContainer.QueueFreeChildren();
@@ -35,11 +38,15 @@ public partial class NugetPanel : Control
_ = Task.GodotRun(async () => _ = Task.GodotRun(async () =>
{ {
await Task.Delay(300); await Task.Delay(300);
foreach (var project in Solution!.AllProjects)
{
_solutionOrProjectOptionButton.AddIconItem(_csprojIcon, project.Name);
}
var result = await _nugetClientService.GetTop100Results(Solution!.DirectoryPath); var result = await _nugetClientService.GetTop100Results(Solution!.DirectoryPath);
_ = Task.GodotRun(async () => _ = Task.GodotRun(async () =>
{ {
var project = Solution.AllProjects.First(s => s.Name == "ProjectB"); var project = Solution.AllProjects.First(s => s.Name == "ProjectA");
await project.MsBuildEvaluationProjectTask; await project.MsBuildEvaluationProjectTask;
var installedPackages = await ProjectEvaluation.GetPackageReferencesForProject(project); var installedPackages = await ProjectEvaluation.GetPackageReferencesForProject(project);
var idePackageResult = await _nugetClientService.GetPackagesForInstalledPackages(project.ChildNodeBasePath, installedPackages); var idePackageResult = await _nugetClientService.GetPackagesForInstalledPackages(project.ChildNodeBasePath, installedPackages);

View File

@@ -1,6 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://duyxg107nfh2f"] [gd_scene load_steps=5 format=3 uid="uid://duyxg107nfh2f"]
[ext_resource type="Script" uid="uid://du4v3dyf0y3d8" path="res://Features/Nuget/NugetPanel.cs" id="1_t4nyu"] [ext_resource type="Script" uid="uid://du4v3dyf0y3d8" path="res://Features/Nuget/NugetPanel.cs" id="1_t4nyu"]
[ext_resource type="Texture2D" uid="uid://btlxqx3c08fjj" path="res://Features/SolutionExplorer/Resources/SlnIcon.svg" id="2_3q32m"]
[ext_resource type="PackedScene" uid="uid://cqc2xlt81ju8s" path="res://Features/Nuget/PackageEntry.tscn" id="2_arg4f"] [ext_resource type="PackedScene" uid="uid://cqc2xlt81ju8s" path="res://Features/Nuget/PackageEntry.tscn" id="2_arg4f"]
[ext_resource type="PackedScene" uid="uid://odaefch2sdft" path="res://Features/Nuget/NugetPackageDetails.tscn" id="3_yr6k7"] [ext_resource type="PackedScene" uid="uid://odaefch2sdft" path="res://Features/Nuget/NugetPackageDetails.tscn" id="3_yr6k7"]
@@ -59,12 +60,15 @@ layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
placeholder_text = "Search for a package" placeholder_text = "Search for a package"
[node name="OptionButton" type="OptionButton" parent="VBoxContainer/MarginContainer2/HSplitContainer/VBoxContainer/HBoxContainer"] [node name="SolutionOrProjectOptionButton" type="OptionButton" parent="VBoxContainer/MarginContainer2/HSplitContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
theme_override_constants/icon_max_width = 20
selected = 0 selected = 0
fit_to_longest_item = false fit_to_longest_item = false
item_count = 1 item_count = 1
popup/item_0/text = "Solution" popup/item_0/text = "Solution"
popup/item_0/icon = ExtResource("2_3q32m")
popup/item_0/id = 0 popup/item_0/id = 0
[node name="CheckButton" type="CheckButton" parent="VBoxContainer/MarginContainer2/HSplitContainer/VBoxContainer/HBoxContainer"] [node name="CheckButton" type="CheckButton" parent="VBoxContainer/MarginContainer2/HSplitContainer/VBoxContainer/HBoxContainer"]