sourcegit/src/ViewModels/RevisionLFSImage.cs
leo a023a9259b
refactor: rewrite lfs pointer detection and image loading
Signed-off-by: leo <longshuang@msn.cn>
2025-06-05 21:06:31 +08:00

34 lines
979 B
C#

using System.Threading.Tasks;
using Avalonia.Threading;
using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
{
public class RevisionLFSImage : ObservableObject
{
public Models.RevisionLFSObject LFS
{
get;
}
public Models.RevisionImageFile Image
{
get => _image;
private set => SetProperty(ref _image, value);
}
public RevisionLFSImage(string repo, string file, Models.LFSObject lfs, Models.ImageDecoder decoder)
{
LFS = new Models.RevisionLFSObject() { Object = lfs };
Task.Run(() =>
{
var source = ImageSource.FromLFSObject(repo, lfs, decoder);
var img = new Models.RevisionImageFile(file, source.Bitmap, source.Size);
Dispatcher.UIThread.Invoke(() => Image = img);
});
}
private Models.RevisionImageFile _image = null;
}
}