Use effective pixels for unsupported previewer (#26345)

This commit is contained in:
Samuel Chapleau
2023-05-26 12:46:43 -07:00
committed by GitHub
parent 6d676329ce
commit 95a9a8a2b0
12 changed files with 72 additions and 41 deletions

View File

@@ -167,8 +167,8 @@ namespace Peek.FilePreviewer
{
if (Previewer != null)
{
var size = await Previewer.GetPreviewSizeAsync(cancellationToken);
PreviewSizeChanged?.Invoke(this, new PreviewSizeChangedArgs(size));
var previewSize = await Previewer.GetPreviewSizeAsync(cancellationToken);
PreviewSizeChanged?.Invoke(this, new PreviewSizeChangedArgs(previewSize));
}
}

View File

@@ -0,0 +1,15 @@
// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Windows.Foundation;
namespace Peek.FilePreviewer.Models
{
public record PreviewSize
{
public Size? MonitorSize { get; init; }
public bool UseEffectivePixels { get; init; }
}
}

View File

@@ -8,11 +8,11 @@ namespace Peek.FilePreviewer.Models
{
public class PreviewSizeChangedArgs
{
public PreviewSizeChangedArgs(Size? windowSizeRequested)
public PreviewSizeChangedArgs(PreviewSize previewSize)
{
WindowSizeRequested = windowSizeRequested;
PreviewSize = previewSize;
}
public Size? WindowSizeRequested { get; init; }
public PreviewSize PreviewSize { get; init; }
}
}

View File

@@ -6,6 +6,7 @@ using System;
using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
using Peek.FilePreviewer.Models;
using Windows.Foundation;
namespace Peek.FilePreviewer.Previewers
@@ -16,7 +17,7 @@ namespace Peek.FilePreviewer.Previewers
public static bool IsFileTypeSupported(string fileExt) => throw new NotImplementedException();
public Task<Size?> GetPreviewSizeAsync(CancellationToken cancellationToken);
public Task<PreviewSize> GetPreviewSizeAsync(CancellationToken cancellationToken);
Task LoadPreviewAsync(CancellationToken cancellationToken);

View File

@@ -15,6 +15,7 @@ using Peek.Common.Extensions;
using Peek.Common.Helpers;
using Peek.Common.Models;
using Peek.FilePreviewer.Exceptions;
using Peek.FilePreviewer.Models;
using Peek.FilePreviewer.Previewers.Helpers;
using Peek.FilePreviewer.Previewers.Interfaces;
using Windows.Foundation;
@@ -68,7 +69,7 @@ namespace Peek.FilePreviewer.Previewers
GC.SuppressFinalize(this);
}
public async Task<Size?> GetPreviewSizeAsync(CancellationToken cancellationToken)
public async Task<PreviewSize> GetPreviewSizeAsync(CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
if (IsSvg(Item))
@@ -88,7 +89,7 @@ namespace Peek.FilePreviewer.Previewers
}
}
return ImageSize;
return new PreviewSize { MonitorSize = ImageSize };
}
public async Task LoadPreviewAsync(CancellationToken cancellationToken)

View File

@@ -13,6 +13,7 @@ using Microsoft.UI.Dispatching;
using Peek.Common.Extensions;
using Peek.Common.Helpers;
using Peek.Common.Models;
using Peek.FilePreviewer.Models;
using Peek.FilePreviewer.Previewers.Interfaces;
using Windows.Foundation;
using Windows.Media.Core;
@@ -74,10 +75,11 @@ namespace Peek.FilePreviewer.Previewers
}
}
public async Task<Size?> GetPreviewSizeAsync(CancellationToken cancellationToken)
public async Task<PreviewSize> GetPreviewSizeAsync(CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
return await Task.Run(Item.GetVideoSize);
var videoSize = await Task.Run(Item.GetVideoSize);
return new PreviewSize { MonitorSize = videoSize };
}
public async Task CopyAsync()

View File

@@ -51,10 +51,11 @@ namespace Peek.FilePreviewer.Previewers
GC.SuppressFinalize(this);
}
public Task<Size?> GetPreviewSizeAsync(CancellationToken cancellationToken)
public Task<PreviewSize> GetPreviewSizeAsync(CancellationToken cancellationToken)
{
Size? size = new Size(680, 500);
return Task.FromResult(size);
var previewSize = new PreviewSize { MonitorSize = size, UseEffectivePixels = true };
return Task.FromResult(previewSize);
}
public async Task LoadPreviewAsync(CancellationToken cancellationToken)

View File

@@ -12,6 +12,7 @@ using Peek.Common.Constants;
using Peek.Common.Extensions;
using Peek.Common.Helpers;
using Peek.Common.Models;
using Peek.FilePreviewer.Models;
using Windows.Foundation;
namespace Peek.FilePreviewer.Previewers
@@ -76,10 +77,9 @@ namespace Peek.FilePreviewer.Previewers
private Task<bool>? DisplayInfoTask { get; set; }
public Task<Size?> GetPreviewSizeAsync(CancellationToken cancellationToken)
public Task<PreviewSize> GetPreviewSizeAsync(CancellationToken cancellationToken)
{
Size? size = null;
return Task.FromResult(size);
return Task.FromResult(new PreviewSize { MonitorSize = null });
}
public async Task LoadPreviewAsync(CancellationToken cancellationToken)