Skip to content

Commit 81e2745

Browse files
committed
feat: update presenters to use IPresenter interface for Brush, FilterEffect, and Transform
1 parent 1e401a7 commit 81e2745

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

src/Beutl/ViewModels/Editors/BrushEditorViewModel.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Text.Json.Nodes;
22
using Beutl.Animation;
3+
using Beutl.Engine;
34
using Beutl.Graphics;
45
using Beutl.Media;
56
using Beutl.ProjectSystem;
@@ -65,11 +66,11 @@ public BrushEditorViewModel(IPropertyAdapter<Brush?> property)
6566
.Subscribe(v => this.GetService<ISupportCloseAnimation>()?.Close(v!))
6667
.DisposeWith(Disposables);
6768

68-
IsPresenter = Value.Select(v => v is BrushPresenter)
69+
IsPresenter = Value.Select(v => v is IPresenter<Brush>)
6970
.ToReadOnlyReactivePropertySlim()
7071
.DisposeWith(Disposables);
7172

72-
CurrentTargetName = Value.Select(v => v is BrushPresenter presenter
73+
CurrentTargetName = Value.Select(v => v is IPresenter<Brush> presenter
7374
? presenter.Target.SubscribeCurrentValueChange()
7475
: Observable.ReturnThenNever<Reference<Brush>>(default))
7576
.Switch()
@@ -190,7 +191,7 @@ public void ChangeDrawableType(Type type)
190191

191192
public void SetTarget(Brush? target)
192193
{
193-
if (Value.Value is BrushPresenter presenter)
194+
if (Value.Value is IPresenter<Brush> presenter)
194195
{
195196
presenter.Target.CurrentValue = target != null
196197
? new Reference<Brush>(target)
@@ -205,7 +206,7 @@ public IReadOnlyList<TargetObjectInfo> GetAvailableTargets()
205206
if (scene == null) return [];
206207

207208
var searcher = new ObjectSearcher(scene, obj =>
208-
obj is Brush && obj is not BrushPresenter);
209+
obj is Brush && obj is not IPresenter<Brush>);
209210

210211
return searcher.SearchAll()
211212
.Cast<Brush>()

src/Beutl/ViewModels/Editors/FilterEffectEditorViewModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,11 @@ public FilterEffectEditorViewModel(IPropertyAdapter<FilterEffect?> property)
9595
.Subscribe(v => this.GetService<ISupportCloseAnimation>()?.Close(v!))
9696
.DisposeWith(Disposables);
9797

98-
IsPresenter = Value.Select(v => v is FilterEffectPresenter)
98+
IsPresenter = Value.Select(v => v is IPresenter<FilterEffect>)
9999
.ToReadOnlyReactivePropertySlim()
100100
.DisposeWith(Disposables);
101101

102-
CurrentTargetName = Value.Select(v => v is FilterEffectPresenter presenter
102+
CurrentTargetName = Value.Select(v => v is IPresenter<FilterEffect> presenter
103103
? presenter.Target.SubscribeCurrentValueChange()
104104
: Observable.ReturnThenNever<Reference<FilterEffect>>(default))
105105
.Switch()
@@ -175,7 +175,7 @@ public void SetNull()
175175

176176
public void SetTarget(FilterEffect? target)
177177
{
178-
if (Value.Value is FilterEffectPresenter presenter)
178+
if (Value.Value is IPresenter<FilterEffect> presenter)
179179
{
180180
presenter.Target.CurrentValue = target != null
181181
? new Reference<FilterEffect>(target)
@@ -190,7 +190,7 @@ public IReadOnlyList<TargetObjectInfo> GetAvailableTargets()
190190
if (scene == null) return [];
191191

192192
var searcher = new ObjectSearcher(scene, obj =>
193-
obj is FilterEffect && obj is not FilterEffectPresenter);
193+
obj is FilterEffect && obj is not IPresenter<FilterEffect>);
194194

195195
return searcher.SearchAll()
196196
.Cast<FilterEffect>()

src/Beutl/ViewModels/Editors/TransformEditorViewModel.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Text.Json.Nodes;
22

33
using Beutl.Animation;
4+
using Beutl.Engine;
45
using Beutl.Graphics.Transformation;
56
using Beutl.Operation;
67
using Beutl.ProjectSystem;
@@ -135,11 +136,11 @@ public TransformEditorViewModel(IPropertyAdapter<Transform?> property)
135136
.Subscribe(v => this.GetService<ISupportCloseAnimation>()?.Close(v!))
136137
.DisposeWith(Disposables);
137138

138-
IsPresenter = Value.Select(v => v is TransformPresenter)
139+
IsPresenter = Value.Select(v => v is IPresenter<Transform>)
139140
.ToReadOnlyReactivePropertySlim()
140141
.DisposeWith(Disposables);
141142

142-
CurrentTargetName = Value.Select(v => v is TransformPresenter presenter
143+
CurrentTargetName = Value.Select(v => v is IPresenter<Transform> presenter
143144
? presenter.Target.SubscribeCurrentValueChange()
144145
: Observable.ReturnThenNever<Reference<Transform>>(default))
145146
.Switch()
@@ -214,7 +215,7 @@ public void SetNull()
214215

215216
public void SetTarget(Transform? target)
216217
{
217-
if (Value.Value is TransformPresenter presenter)
218+
if (Value.Value is IPresenter<Transform> presenter)
218219
{
219220
presenter.Target.CurrentValue = target != null
220221
? new Reference<Transform>(target)
@@ -229,7 +230,7 @@ public IReadOnlyList<TargetObjectInfo> GetAvailableTargets()
229230
if (scene == null) return [];
230231

231232
var searcher = new ObjectSearcher(scene, obj =>
232-
obj is Transform && obj is not TransformPresenter);
233+
obj is Transform && obj is not IPresenter<Transform>);
233234

234235
return searcher.SearchAll()
235236
.Cast<Transform>()

0 commit comments

Comments
 (0)