Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4500df7

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 19b25cc commit 4500df7

File tree

2 files changed

+34
-16
lines changed

2 files changed

+34
-16
lines changed

‎src/Views/DiffView.axaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<StackPanel Grid.Column="3" Margin="8,0,0,0" Orientation="Horizontal" VerticalAlignment="Center">
3737
<Button Classes="icon_button"
3838
Width="28"
39-
Command="{Binding PrevChange}"
39+
Click="OnGotoPrevChange"
4040
IsVisible="{Binding IsTextDiff}"
4141
ToolTip.Tip="{DynamicResource Text.Diff.Prev}">
4242
<Path Width="12" Height="12" Stretch="Uniform" Margin="0,6,0,0" Data="{StaticResource Icons.Up}"/>
@@ -51,7 +51,7 @@
5151

5252
<Button Classes="icon_button"
5353
Width="28"
54-
Command="{Binding NextChange}"
54+
Click="OnGotoNextChange"
5555
IsVisible="{Binding IsTextDiff}"
5656
ToolTip.Tip="{DynamicResource Text.Diff.Next}">
5757
<Path Width="12" Height="12" Stretch="Uniform" Margin="0,6,0,0" Data="{StaticResource Icons.Down}"/>

‎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)

AltStyle によって変換されたページ (->オリジナル) /