Skip to content

Commit 9395705

Browse files
committed
feature: support to collapse history filters bar (#2540)
Signed-off-by: leo <longshuang@msn.cn>
1 parent a7352aa commit 9395705

6 files changed

Lines changed: 72 additions & 10 deletions

File tree

src/Models/RepositoryUIStates.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,12 @@ public AvaloniaList<HistoryFilter> HistoryFilters
231231
set;
232232
} = [];
233233

234+
public bool OnlyShowHistoryFiltersSummary
235+
{
236+
get;
237+
set;
238+
} = false;
239+
234240
public List<string> RecentCommitMessages
235241
{
236242
get;

src/Resources/Locales/en_US.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,9 +800,11 @@
800800
<x:String x:Key="Text.Repository.Explore" xml:space="preserve">Open in File Browser</x:String>
801801
<x:String x:Key="Text.Repository.Filter" xml:space="preserve">Search Branches/Tags/Submodules</x:String>
802802
<x:String x:Key="Text.Repository.FilterCommits" xml:space="preserve">Visibility in Graph</x:String>
803+
<x:String x:Key="Text.Repository.FilterCommits.Collapse" xml:space="preserve">Only show count of filters</x:String>
803804
<x:String x:Key="Text.Repository.FilterCommits.Default" xml:space="preserve">Unset</x:String>
804805
<x:String x:Key="Text.Repository.FilterCommits.Exclude" xml:space="preserve">Hide in commit graph</x:String>
805806
<x:String x:Key="Text.Repository.FilterCommits.Include" xml:space="preserve">Filter in commit graph</x:String>
807+
<x:String x:Key="Text.Repository.FilterCommits.Summary" xml:space="preserve">filter(s) enabled</x:String>
806808
<x:String x:Key="Text.Repository.HistoriesLayout" xml:space="preserve">LAYOUT</x:String>
807809
<x:String x:Key="Text.Repository.HistoriesLayout.Horizontal" xml:space="preserve">Horizontal</x:String>
808810
<x:String x:Key="Text.Repository.HistoriesLayout.Vertical" xml:space="preserve">Vertical</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,9 +804,11 @@
804804
<x:String x:Key="Text.Repository.Explore" xml:space="preserve">在文件浏览器中打开</x:String>
805805
<x:String x:Key="Text.Repository.Filter" xml:space="preserve">快速查找分支/标签/子模块</x:String>
806806
<x:String x:Key="Text.Repository.FilterCommits" xml:space="preserve">设置在列表中的可见性</x:String>
807+
<x:String x:Key="Text.Repository.FilterCommits.Collapse" xml:space="preserve">仅显示过滤项的数量</x:String>
807808
<x:String x:Key="Text.Repository.FilterCommits.Default" xml:space="preserve">不指定</x:String>
808809
<x:String x:Key="Text.Repository.FilterCommits.Exclude" xml:space="preserve">在提交列表中隐藏</x:String>
809810
<x:String x:Key="Text.Repository.FilterCommits.Include" xml:space="preserve">使用其对提交列表过滤</x:String>
811+
<x:String x:Key="Text.Repository.FilterCommits.Summary" xml:space="preserve">个过滤项已被启用</x:String>
810812
<x:String x:Key="Text.Repository.HistoriesLayout" xml:space="preserve">布局方式</x:String>
811813
<x:String x:Key="Text.Repository.HistoriesLayout.Horizontal" xml:space="preserve">水平排布</x:String>
812814
<x:String x:Key="Text.Repository.HistoriesLayout.Vertical" xml:space="preserve">竖直排布</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,9 +804,11 @@
804804
<x:String x:Key="Text.Repository.Explore" xml:space="preserve">在檔案瀏覽器中開啟</x:String>
805805
<x:String x:Key="Text.Repository.Filter" xml:space="preserve">快速搜尋分支/標籤/子模組</x:String>
806806
<x:String x:Key="Text.Repository.FilterCommits" xml:space="preserve">篩選以顯示或隱藏</x:String>
807+
<x:String x:Key="Text.Repository.FilterCommits.Collapse" xml:space="preserve">僅顯示篩選項的數量</x:String>
807808
<x:String x:Key="Text.Repository.FilterCommits.Default" xml:space="preserve">取消指定</x:String>
808809
<x:String x:Key="Text.Repository.FilterCommits.Exclude" xml:space="preserve">在提交列表中隱藏</x:String>
809810
<x:String x:Key="Text.Repository.FilterCommits.Include" xml:space="preserve">以其篩選提交列表</x:String>
811+
<x:String x:Key="Text.Repository.FilterCommits.Summary" xml:space="preserve">個篩選項已被啟用</x:String>
810812
<x:String x:Key="Text.Repository.HistoriesLayout" xml:space="preserve">版面配置</x:String>
811813
<x:String x:Key="Text.Repository.HistoriesLayout.Horizontal" xml:space="preserve">橫向顯示</x:String>
812814
<x:String x:Key="Text.Repository.HistoriesLayout.Vertical" xml:space="preserve">縱向顯示</x:String>

src/ViewModels/Repository.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,19 @@ public bool IsBisectCommandRunning
412412
private set => SetProperty(ref _isBisectCommandRunning, value);
413413
}
414414

415+
public bool OnlyShowHistoryFiltersSummary
416+
{
417+
get => _uiStates.OnlyShowHistoryFiltersSummary;
418+
set
419+
{
420+
if (value != _uiStates.OnlyShowHistoryFiltersSummary)
421+
{
422+
_uiStates.OnlyShowHistoryFiltersSummary = value;
423+
OnPropertyChanged();
424+
}
425+
}
426+
}
427+
415428
public bool IsAutoFetching
416429
{
417430
get => _isAutoFetching;

src/Views/Repository.axaml

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@
922922
</MultiBinding>
923923
</Border.IsVisible>
924924

925-
<Grid ColumnDefinitions="Auto,*,Auto">
925+
<Grid ColumnDefinitions="Auto,*,Auto,Auto">
926926
<Path Grid.Column="0"
927927
Margin="8,0,0,0"
928928
Width="12" Height="12"
@@ -936,7 +936,10 @@
936936
Fill="{DynamicResource Brush.FG2}"
937937
IsVisible="{Binding HistoryFilterMode, Converter={x:Static ObjectConverters.Equal}, ConverterParameter={x:Static m:FilterMode.Excluded}}"/>
938938

939-
<ItemsControl Grid.Column="1" Margin="8,4" ItemsSource="{Binding UIStates.HistoryFilters}">
939+
<ItemsControl Grid.Column="1"
940+
Margin="8,4"
941+
ItemsSource="{Binding UIStates.HistoryFilters}"
942+
IsVisible="{Binding !OnlyShowHistoryFiltersSummary, Mode=OneWay}">
940943
<ItemsControl.ItemsPanel>
941944
<ItemsPanelTemplate>
942945
<WrapPanel Orientation="Horizontal" ItemHeight="22"/>
@@ -951,22 +954,56 @@
951954
BorderThickness="1"
952955
BorderBrush="{Binding Mode, Converter={x:Static c:FilterModeConverters.ToBorderBrush}}"
953956
VerticalAlignment="Center">
954-
<StackPanel Orientation="Horizontal" Margin="8,0">
955-
<Path Width="10" Height="10" Data="{StaticResource Icons.Branch}" IsVisible="{Binding IsBranch}"/>
956-
<Path Width="10" Height="10" Data="{StaticResource Icons.Tag}" IsVisible="{Binding !IsBranch}"/>
957-
<TextBlock Text="{Binding Pattern, Converter={x:Static c:StringConverters.TrimRefsPrefix}}" Margin="4,0,8,0"/>
957+
<Grid Margin="8,0">
958+
<Grid.ColumnDefinitions>
959+
<ColumnDefinition Width="Auto"/>
960+
<ColumnDefinition Width="Auto" MaxWidth="300"/>
961+
<ColumnDefinition Width="Auto"/>
962+
</Grid.ColumnDefinitions>
963+
<Path Grid.Column="0" Width="10" Height="10" Data="{StaticResource Icons.Branch}" IsVisible="{Binding IsBranch}"/>
964+
<Path Grid.Column="0" Width="10" Height="10" Data="{StaticResource Icons.Tag}" IsVisible="{Binding !IsBranch}"/>
965+
966+
<TextBlock Grid.Column="1"
967+
Text="{Binding Pattern, Converter={x:Static c:StringConverters.TrimRefsPrefix}}"
968+
Margin="4,0,8,0"
969+
TextTrimming="CharacterEllipsis"/>
958970

959-
<Button Classes="icon_button" VerticalAlignment="Center" Margin="0" Padding="0" Click="OnRemoveSelectedHistoryFilter">
971+
<Button Grid.Column="2" Classes="icon_button" VerticalAlignment="Center" Margin="0" Padding="0" Click="OnRemoveSelectedHistoryFilter">
960972
<Path Width="8" Height="8" Data="{StaticResource Icons.Close}"/>
961973
</Button>
962-
</StackPanel>
974+
</Grid>
963975
</Border>
964976
</DataTemplate>
965977
</ItemsControl.ItemTemplate>
966978
</ItemsControl>
967979

968-
<Button Grid.Column="2" Classes="icon_button" Command="{Binding ClearHistoryFilters}" ToolTip.Tip="{DynamicResource Text.Repository.ClearAllCommitsFilter}">
969-
<Path Width="14" Height="14" Margin="16,0,8,0" Data="{StaticResource Icons.RemoveAll}"/>
980+
<Border Grid.Column="1"
981+
Height="30"
982+
Margin="6,0,0,0"
983+
IsVisible="{Binding OnlyShowHistoryFiltersSummary, Mode=OneWay}">
984+
<TextBlock VerticalAlignment="Center" Foreground="{DynamicResource Brush.FG2}">
985+
<Run Text="{Binding UIStates.HistoryFilters.Count, Mode=OneWay}" FontWeight="Bold"/>
986+
<Run Text="{DynamicResource Text.Repository.FilterCommits.Summary}"/>
987+
</TextBlock>
988+
</Border>
989+
990+
<ToggleButton Grid.Column="2"
991+
Classes="line_path"
992+
Width="24"
993+
Margin="16,0,0,0"
994+
Background="Transparent"
995+
IsChecked="{Binding OnlyShowHistoryFiltersSummary, Mode=TwoWay}"
996+
ToolTip.Tip="{DynamicResource Text.Repository.FilterCommits.Collapse}">
997+
<Path Width="14" Height="14" Data="{StaticResource Icons.EyeClose}"/>
998+
</ToggleButton>
999+
1000+
<Button Grid.Column="3"
1001+
Width="24"
1002+
Margin="8,0"
1003+
Classes="icon_button"
1004+
Command="{Binding ClearHistoryFilters}"
1005+
ToolTip.Tip="{DynamicResource Text.Repository.ClearAllCommitsFilter}">
1006+
<Path Width="14" Height="14" Data="{StaticResource Icons.RemoveAll}"/>
9701007
</Button>
9711008
</Grid>
9721009
</Border>

0 commit comments

Comments
 (0)