fix: select file with only eol changes after other change types will not update diff result

This commit is contained in:
leo 2024-03-21 21:24:53 +08:00
parent a6103b8b31
commit 0fadab2ca2
3 changed files with 17 additions and 15 deletions

View file

@ -380,8 +380,6 @@ namespace SourceGit.Models
private bool ProcessIndicatorForPatch(StringBuilder builder, TextDiffLine indicator, int idx, int start, int end, int ignoreRemoves, int ignoreAdds, bool revert, bool tailed)
{
var match = indicatorRegex().Match(indicator.Content);
var oldStart = int.Parse(match.Groups[1].Value);
var newStart = int.Parse(match.Groups[2].Value) + ignoreRemoves - ignoreAdds;
@ -449,7 +447,6 @@ namespace SourceGit.Models
private bool ProcessIndicatorForPatchSingleSide(StringBuilder builder, TextDiffLine indicator, int idx, int start, int end, int ignoreRemoves, int ignoreAdds, bool revert, bool isOldSide, bool tailed)
{
var match = indicatorRegex().Match(indicator.Content);
var oldStart = int.Parse(match.Groups[1].Value);
var newStart = int.Parse(match.Groups[2].Value) + ignoreRemoves - ignoreAdds;
@ -550,6 +547,10 @@ namespace SourceGit.Models
public long NewSize { get; set; } = 0;
}
public class NoOrEOLChange
{
}
public class DiffResult
{
public bool IsBinary { get; set; } = false;

View file

@ -131,6 +131,7 @@ namespace SourceGit.ViewModels
}
else
{
Content = new Models.NoOrEOLChange();
IsTextDiff = false;
IsNoChange = true;
}

View file

@ -52,18 +52,6 @@
</Grid>
</Border>
<!-- Same Page -->
<Border Grid.Row="1" Background="{DynamicResource Brush.Window}" IsVisible="{Binding IsNoChange}">
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
<Path Width="64" Height="64" Data="{StaticResource Icons.Check}" Fill="{DynamicResource Brush.FG2}"/>
<TextBlock Margin="0,16,0,0"
Text="{DynamicResource Text.Diff.NoChange}"
FontSize="18" FontWeight="Bold"
Foreground="{DynamicResource Brush.FG2}"
HorizontalAlignment="Center"/>
</StackPanel>
</Border>
<!-- Diff Contents -->
<ContentControl Grid.Row="1" Content="{Binding Content}">
<ContentControl.DataTemplates>
@ -125,6 +113,18 @@
<DataTemplate DataType="m:TextDiff">
<v:TextDiffView TextDiff="{Binding}" UseSideBySideDiff="{Binding Source={x:Static vm:Preference.Instance}, Path=UseSideBySideDiff, Mode=OneWay}"/>
</DataTemplate>
<!-- No or only EOL changes -->
<DataTemplate DataType="m:NoOrEOLChange">
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
<Path Width="64" Height="64" Data="{StaticResource Icons.Check}" Fill="{DynamicResource Brush.FG2}"/>
<TextBlock Margin="0,16,0,0"
Text="{DynamicResource Text.Diff.NoChange}"
FontSize="18" FontWeight="Bold"
Foreground="{DynamicResource Brush.FG2}"
HorizontalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ContentControl.DataTemplates>
</ContentControl>
</Grid>