mirror of
https://github.com/unclshura/splitter.git
synced 2026-06-21 16:12:01 +00:00
52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
using System.ComponentModel;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
|
namespace Splitter_UI.ViewModels;
|
|
|
|
public partial class PreviewPaneViewModel : ObservableObject
|
|
{
|
|
[ObservableProperty]
|
|
private JobViewModel? _selected;
|
|
|
|
public PreviewData? Preview => Selected?.Preview;
|
|
public Point2f? Sar => Selected?.Probe?.Sar;
|
|
public int Rotate => Selected?.Rotate ?? 0;
|
|
public Point2f GravitateTo
|
|
{
|
|
get => Selected?.GravitateTo ?? new Point2f(0.5f, 0.5f);
|
|
set
|
|
{
|
|
if (Selected == null)
|
|
return;
|
|
Selected.GravitateTo = value;
|
|
OnPropertyChanged(nameof(GravitateTo));
|
|
}
|
|
}
|
|
|
|
partial void OnSelectedChanged(JobViewModel? oldValue, JobViewModel? newValue)
|
|
{
|
|
if (oldValue != null)
|
|
oldValue.PropertyChanged -= SelectedPropertyChanged;
|
|
|
|
if (newValue != null)
|
|
newValue.PropertyChanged += SelectedPropertyChanged;
|
|
|
|
OnPropertyChanged(nameof(Preview));
|
|
OnPropertyChanged(nameof(Sar));
|
|
OnPropertyChanged(nameof(Rotate));
|
|
}
|
|
|
|
private void SelectedPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
|
{
|
|
if (e.PropertyName == nameof(JobViewModel.Preview))
|
|
OnPropertyChanged(nameof(Preview));
|
|
|
|
if (e.PropertyName == nameof(JobViewModel.Probe))
|
|
{
|
|
OnPropertyChanged(nameof(Sar));
|
|
OnPropertyChanged(nameof(Rotate));
|
|
}
|
|
}
|
|
}
|
|
|