load nuget icon
This commit is contained in:
@@ -49,6 +49,17 @@ public class NugetClientService
|
|||||||
.Take(100)
|
.Take(100)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
// foreach (var package in topPackages)
|
||||||
|
// {
|
||||||
|
// var repository = Repository.Factory.GetCoreV3(package.PackageSources.Single());
|
||||||
|
// var packageMetadataResource = await repository.GetResourceAsync<PackageMetadataResource>(cancellationToken).ConfigureAwait(false);
|
||||||
|
// var metadata = await packageMetadataResource.GetMetadataAsync(
|
||||||
|
// package.PackageSearchMetadata.Identity.Id, includePrerelease: _includePrerelease, includeUnlisted: false,
|
||||||
|
// cache, logger, cancellationToken).ConfigureAwait(false);
|
||||||
|
// ;
|
||||||
|
// var packageByIdResource = await repository.GetResourceAsync<FindPackageByIdResource>(cancellationToken).ConfigureAwait(false);
|
||||||
|
// }
|
||||||
|
|
||||||
// we need to find out if other package sources have the package too
|
// we need to find out if other package sources have the package too
|
||||||
foreach (var package in topPackages)
|
foreach (var package in topPackages)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ public partial class PackageEntry : MarginContainer
|
|||||||
private Label _currentVersionLabel = null!;
|
private Label _currentVersionLabel = null!;
|
||||||
private Label _latestVersionLabel = null!;
|
private Label _latestVersionLabel = null!;
|
||||||
private HBoxContainer _sourceNamesContainer = null!;
|
private HBoxContainer _sourceNamesContainer = null!;
|
||||||
|
private TextureRect _packageIconTextureRect = null!;
|
||||||
|
|
||||||
private static readonly Color Source_NugetOrg_Color = new Color("629655");
|
private static readonly Color Source_NugetOrg_Color = new Color("629655");
|
||||||
private static readonly Color Source_2_Color = new Color("008989");
|
private static readonly Color Source_2_Color = new Color("008989");
|
||||||
@@ -23,6 +24,7 @@ public partial class PackageEntry : MarginContainer
|
|||||||
_currentVersionLabel = GetNode<Label>("%CurrentVersionLabel");
|
_currentVersionLabel = GetNode<Label>("%CurrentVersionLabel");
|
||||||
_latestVersionLabel = GetNode<Label>("%LatestVersionLabel");
|
_latestVersionLabel = GetNode<Label>("%LatestVersionLabel");
|
||||||
_sourceNamesContainer = GetNode<HBoxContainer>("%SourceNamesHBoxContainer");
|
_sourceNamesContainer = GetNode<HBoxContainer>("%SourceNamesHBoxContainer");
|
||||||
|
_packageIconTextureRect = GetNode<TextureRect>("%PackageIconTextureRect");
|
||||||
ApplyValues();
|
ApplyValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,11 +35,33 @@ public partial class PackageEntry : MarginContainer
|
|||||||
_currentVersionLabel.Text = string.Empty;
|
_currentVersionLabel.Text = string.Empty;
|
||||||
//_latestVersionLabel.Text = $"Latest: {PackageResult.PackageSearchMetadata.vers.LatestVersion}";
|
//_latestVersionLabel.Text = $"Latest: {PackageResult.PackageSearchMetadata.vers.LatestVersion}";
|
||||||
_sourceNamesContainer.QueueFreeChildren();
|
_sourceNamesContainer.QueueFreeChildren();
|
||||||
|
|
||||||
|
var iconUrl = PackageResult.PackageSearchMetadata.IconUrl;
|
||||||
|
if (iconUrl != null)
|
||||||
|
{
|
||||||
|
var httpRequest = new HttpRequest(); // Godot's abstraction
|
||||||
|
AddChild(httpRequest);
|
||||||
|
httpRequest.RequestCompleted += (result, responseCode, headers, body) =>
|
||||||
|
{
|
||||||
|
if (responseCode is 200)
|
||||||
|
{
|
||||||
|
var image = new Image();
|
||||||
|
image.LoadPngFromBuffer(body);
|
||||||
|
image.Resize(32, 32, Image.Interpolation.Lanczos);
|
||||||
|
var loadedImageTexture = ImageTexture.CreateFromImage(image);
|
||||||
|
_packageIconTextureRect.Texture = loadedImageTexture;
|
||||||
|
}
|
||||||
|
httpRequest.QueueFree();
|
||||||
|
};
|
||||||
|
httpRequest.Request(iconUrl.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var source in PackageResult.PackageSources)
|
foreach (var source in PackageResult.PackageSources)
|
||||||
{
|
{
|
||||||
var label = new Label { Text = source.Name };
|
var label = new Label { Text = source.Name };
|
||||||
label.AddThemeColorOverride("font_color", source.Name switch
|
label.AddThemeColorOverride("font_color", source.Name switch
|
||||||
{
|
{
|
||||||
|
// TODO: Make dynamic
|
||||||
"nuget.org" => Source_NugetOrg_Color,
|
"nuget.org" => Source_NugetOrg_Color,
|
||||||
"Microsoft Visual Studio Offline Packages" => Source_2_Color,
|
"Microsoft Visual Studio Offline Packages" => Source_2_Color,
|
||||||
_ => Source_3_Color
|
_ => Source_3_Color
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ theme_override_constants/margin_top = 4
|
|||||||
theme_override_constants/margin_right = 3
|
theme_override_constants/margin_right = 3
|
||||||
theme_override_constants/margin_bottom = 4
|
theme_override_constants/margin_bottom = 4
|
||||||
|
|
||||||
[node name="IconTextureRect" type="TextureRect" parent="MarginContainer/HBoxContainer/MarginContainer"]
|
[node name="PackageIconTextureRect" type="TextureRect" parent="MarginContainer/HBoxContainer/MarginContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
texture = ExtResource("1_kw1n7")
|
texture = ExtResource("1_kw1n7")
|
||||||
|
|||||||
Reference in New Issue
Block a user