Skip to content

Commit 499b9e8

Browse files
committed
The 2 implementations can now be switched
Added a bool property DiffView.UseChangeBlocks. It's not bound from UI yet, but could be used for runtime switching between the two different implementations of prev/next change. The buttons are now using the OnGoto[Prev|Next]Change Click-handler, regardless of implementation.
1 parent 958707e commit 499b9e8

File tree

1 file changed

+32
-14
lines changed

1 file changed

+32
-14
lines changed

src/Views/DiffView.axaml.cs

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,48 @@ public DiffView()
1111
InitializeComponent();
1212
}
1313

14+
public bool UseChangeBlocks { get; set; } = true;
15+
1416
private void OnGotoPrevChange(object _, RoutedEventArgs e)
1517
{
16-
var textDiff = this.FindDescendantOfType<ThemedTextDiffPresenter>();
17-
if (textDiff == null)
18-
return;
18+
if (UseChangeBlocks)
19+
{
20+
if (DataContext is ViewModels.DiffContext diffCtx)
21+
diffCtx.PrevChange();
22+
}
23+
else
24+
{
25+
var textDiff = this.FindDescendantOfType<ThemedTextDiffPresenter>();
26+
if (textDiff == null)
27+
return;
1928

20-
textDiff.GotoPrevChange();
21-
if (textDiff is SingleSideTextDiffPresenter presenter)
22-
presenter.ForceSyncScrollOffset();
29+
textDiff.GotoPrevChange();
30+
if (textDiff is SingleSideTextDiffPresenter presenter)
31+
presenter.ForceSyncScrollOffset();
2332

24-
e.Handled = true;
33+
e.Handled = true;
34+
}
2535
}
2636

2737
private void OnGotoNextChange(object _, RoutedEventArgs e)
2838
{
29-
var textDiff = this.FindDescendantOfType<ThemedTextDiffPresenter>();
30-
if (textDiff == null)
31-
return;
39+
if (UseChangeBlocks)
40+
{
41+
if (DataContext is ViewModels.DiffContext diffCtx)
42+
diffCtx.NextChange();
43+
}
44+
else
45+
{
46+
var textDiff = this.FindDescendantOfType<ThemedTextDiffPresenter>();
47+
if (textDiff == null)
48+
return;
3249

33-
textDiff.GotoNextChange();
34-
if (textDiff is SingleSideTextDiffPresenter presenter)
35-
presenter.ForceSyncScrollOffset();
50+
textDiff.GotoNextChange();
51+
if (textDiff is SingleSideTextDiffPresenter presenter)
52+
presenter.ForceSyncScrollOffset();
3653

37-
e.Handled = true;
54+
e.Handled = true;
55+
}
3856
}
3957
}
4058
}

0 commit comments

Comments
 (0)