Show WinWorldPC screenshot thumbnails in Uno review

This commit is contained in:
2026-06-30 12:53:34 +01:00
parent 569c178ca0
commit 42ed8daaa7
3 changed files with 40 additions and 2 deletions

View File

@@ -79,10 +79,24 @@ public sealed partial class WwpcScreenshotDecisionItem : ObservableObject
public string ImageUrl { get; init; } = string.Empty;
public string OriginalCaption { get; init; } = string.Empty;
public string ThumbnailUrl => AbsoluteWwpcUrl(ImageUrl);
public string SourcePageUrl => AbsoluteWwpcUrl(SourceUrl);
public bool HasThumbnail => !string.IsNullOrWhiteSpace(ThumbnailUrl);
[ObservableProperty] private bool _include;
[ObservableProperty] private string _captionOverride = string.Empty;
[ObservableProperty] private SoftwarePlatformDto? _platform;
[ObservableProperty] private WwpcVersionDecisionItem? _linkedVersion;
private static string AbsoluteWwpcUrl(string? url)
{
if(string.IsNullOrWhiteSpace(url)) return string.Empty;
if(url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
return url;
return "https://winworldpc.com" + (url.StartsWith('/') ? url : "/" + url);
}
}
public sealed partial class WwpcGenreChipItem : ObservableObject

View File

@@ -419,6 +419,30 @@
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcMajorReleaseColumn}" Binding="{Binding MajorRelease}" Width="*" />
<controls:DataGridTemplateColumn Header="Thumbnail" Width="Auto">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="160" Height="90">
<Border Background="{ThemeResource ControlFillColorSecondaryBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="6">
<Image Source="{Binding ThumbnailUrl}"
Stretch="UniformToFill"
Visibility="{Binding HasThumbnail, Converter={StaticResource BoolToVisibilityConverter}}" />
</Border>
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=SoftwareScreenshotsPreviewUnavailable}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center"
TextWrapping="Wrap"
Margin="8"
Foreground="{ThemeResource SystemBaseMediumColor}"
Visibility="{Binding HasThumbnail, Converter={StaticResource InvertBoolToVisibilityConverter}}" />
</Grid>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=CaptionLabel}" Width="2*">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>

View File

@@ -64,8 +64,8 @@ public sealed partial class AdminWwpcImportReviewPage : Page
private async void OpenScreenshotSource_Click(object sender, RoutedEventArgs e)
{
if((sender as HyperlinkButton)?.CommandParameter is not WwpcScreenshotDecisionItem item) return;
if(string.IsNullOrWhiteSpace(item.ImageUrl)) return;
if(Uri.TryCreate(item.ImageUrl, UriKind.Absolute, out Uri? uri))
if(string.IsNullOrWhiteSpace(item.SourcePageUrl)) return;
if(Uri.TryCreate(item.SourcePageUrl, UriKind.Absolute, out Uri? uri))
await Launcher.LaunchUriAsync(uri);
}
}