Skip to content

Commit 74f52fb

Browse files
committed
enhance: only show syntax-highlighting toggle if current revision content is a text file
Signed-off-by: leo <longshuang@msn.cn>
1 parent f830b68 commit 74f52fb

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

src/Converters/ObjectConverters.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using System.Globalization;
3+
using Avalonia.Data.Converters;
4+
5+
namespace SourceGit.Converters
6+
{
7+
public static class ObjectConverters
8+
{
9+
public class IsTypeOfConverter : IValueConverter
10+
{
11+
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
12+
{
13+
if (value == null || parameter == null)
14+
return false;
15+
16+
return value.GetType().IsAssignableTo((Type)parameter);
17+
}
18+
19+
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
20+
{
21+
return new NotImplementedException();
22+
}
23+
}
24+
25+
public static readonly IsTypeOfConverter IsTypeOf = new IsTypeOfConverter();
26+
}
27+
}

src/Views/FileHistories.axaml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,28 @@
139139
<Border Grid.Row="0"
140140
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
141141
Background="{DynamicResource Brush.Window}">
142-
<Grid ColumnDefinitions="Auto,*">
142+
<Grid ColumnDefinitions="Auto,*,Auto">
143143
<Path Grid.Column="0" Width="12" Height="12" Data="{StaticResource Icons.File}" Margin="8,0,0,0"/>
144144
<TextBlock Grid.Column="1"
145145
Classes="primary"
146146
Margin="4,0,0,0"
147147
Text="{Binding Path}"
148148
FontSize="11"
149149
TextTrimming="CharacterEllipsis"/>
150+
<ToggleButton Grid.Column="2"
151+
Classes="line_path"
152+
Width="28"
153+
Background="Transparent"
154+
IsChecked="{Binding Source={x:Static vm:Preferences.Instance}, Path=UseSyntaxHighlighting, Mode=TwoWay}"
155+
ToolTip.Tip="{DynamicResource Text.Diff.SyntaxHighlight}">
156+
<ToggleButton.IsVisible>
157+
<Binding Path="Content"
158+
Mode="OneWay"
159+
Converter="{x:Static c:ObjectConverters.IsTypeOf}"
160+
ConverterParameter="{x:Type m:RevisionTextFile}"/>
161+
</ToggleButton.IsVisible>
162+
<Path Width="13" Height="13" Data="{StaticResource Icons.SyntaxHighlight}" Margin="0,3,0,0"/>
163+
</ToggleButton>
150164
</Grid>
151165
</Border>
152166

src/Views/RevisionFiles.axaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
33
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
44
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:m="using:SourceGit.Models"
56
xmlns:vm="using:SourceGit.ViewModels"
67
xmlns:v="using:SourceGit.Views"
78
xmlns:c="using:SourceGit.Converters"
@@ -133,6 +134,12 @@
133134
Background="Transparent"
134135
IsChecked="{Binding Source={x:Static vm:Preferences.Instance}, Path=UseSyntaxHighlighting, Mode=TwoWay}"
135136
ToolTip.Tip="{DynamicResource Text.Diff.SyntaxHighlight}">
137+
<ToggleButton.IsVisible>
138+
<Binding Path="ViewRevisionFileContent"
139+
Mode="OneWay"
140+
Converter="{x:Static c:ObjectConverters.IsTypeOf}"
141+
ConverterParameter="{x:Type m:RevisionTextFile}"/>
142+
</ToggleButton.IsVisible>
136143
<Path Width="13" Height="13" Data="{StaticResource Icons.SyntaxHighlight}" Margin="0,3,0,0"/>
137144
</ToggleButton>
138145
</Grid>

0 commit comments

Comments
 (0)