enhance: only show syntax-highlighting toggle if current revision content is a text file

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2025-06-07 20:27:52 +08:00
parent f830b68f6a
commit 74f52fb266
No known key found for this signature in database
3 changed files with 49 additions and 1 deletions

View file

@ -0,0 +1,27 @@
using System;
using System.Globalization;
using Avalonia.Data.Converters;
namespace SourceGit.Converters
{
public static class ObjectConverters
{
public class IsTypeOfConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || parameter == null)
return false;
return value.GetType().IsAssignableTo((Type)parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return new NotImplementedException();
}
}
public static readonly IsTypeOfConverter IsTypeOf = new IsTypeOfConverter();
}
}

View file

@ -139,7 +139,7 @@
<Border Grid.Row="0"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
Background="{DynamicResource Brush.Window}">
<Grid ColumnDefinitions="Auto,*">
<Grid ColumnDefinitions="Auto,*,Auto">
<Path Grid.Column="0" Width="12" Height="12" Data="{StaticResource Icons.File}" Margin="8,0,0,0"/>
<TextBlock Grid.Column="1"
Classes="primary"
@ -147,6 +147,20 @@
Text="{Binding Path}"
FontSize="11"
TextTrimming="CharacterEllipsis"/>
<ToggleButton Grid.Column="2"
Classes="line_path"
Width="28"
Background="Transparent"
IsChecked="{Binding Source={x:Static vm:Preferences.Instance}, Path=UseSyntaxHighlighting, Mode=TwoWay}"
ToolTip.Tip="{DynamicResource Text.Diff.SyntaxHighlight}">
<ToggleButton.IsVisible>
<Binding Path="Content"
Mode="OneWay"
Converter="{x:Static c:ObjectConverters.IsTypeOf}"
ConverterParameter="{x:Type m:RevisionTextFile}"/>
</ToggleButton.IsVisible>
<Path Width="13" Height="13" Data="{StaticResource Icons.SyntaxHighlight}" Margin="0,3,0,0"/>
</ToggleButton>
</Grid>
</Border>

View file

@ -2,6 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:m="using:SourceGit.Models"
xmlns:vm="using:SourceGit.ViewModels"
xmlns:v="using:SourceGit.Views"
xmlns:c="using:SourceGit.Converters"
@ -133,6 +134,12 @@
Background="Transparent"
IsChecked="{Binding Source={x:Static vm:Preferences.Instance}, Path=UseSyntaxHighlighting, Mode=TwoWay}"
ToolTip.Tip="{DynamicResource Text.Diff.SyntaxHighlight}">
<ToggleButton.IsVisible>
<Binding Path="ViewRevisionFileContent"
Mode="OneWay"
Converter="{x:Static c:ObjectConverters.IsTypeOf}"
ConverterParameter="{x:Type m:RevisionTextFile}"/>
</ToggleButton.IsVisible>
<Path Width="13" Height="13" Data="{StaticResource Icons.SyntaxHighlight}" Margin="0,3,0,0"/>
</ToggleButton>
</Grid>