Skip to content

Commit ac2a329

Browse files
committed
enhance: hiding invisible controls when commit details panel is collapsed
Signed-off-by: leo <longshuang@msn.cn>
1 parent 072acc6 commit ac2a329

5 files changed

Lines changed: 46 additions & 17 deletions

File tree

src/Views/CommitDetail.axaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
xmlns:c="using:SourceGit.Converters"
99
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
1010
x:Class="SourceGit.Views.CommitDetail"
11-
x:DataType="vm:CommitDetail">
11+
x:DataType="vm:CommitDetail"
12+
x:Name="ThisControl">
1213
<TabControl SelectedIndex="{Binding ActiveTabIndex, Mode=TwoWay}" Padding="0,4">
1314
<!-- Information Page -->
1415
<TabItem>
@@ -18,7 +19,10 @@
1819
</Border>
1920
</TabItem.Header>
2021

21-
<ScrollViewer Margin="4,0,0,0" Offset="{Binding ScrollOffset, Mode=TwoWay}" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
22+
<ScrollViewer Margin="4,0,0,0"
23+
Offset="{Binding ScrollOffset, Mode=TwoWay}"
24+
HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"
25+
IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}">
2226
<StackPanel Orientation="Vertical">
2327
<!-- Base Information -->
2428
<v:CommitBaseInfo Content="{Binding Commit}"
@@ -89,7 +93,8 @@
8993
<TextBlock Classes="tab_header" Text="{DynamicResource Text.CommitDetail.Changes}"/>
9094
</Border>
9195
</TabItem.Header>
92-
<v:CommitChanges Margin="4,0"/>
96+
<v:CommitChanges Margin="4,0"
97+
IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}"/>
9398
</TabItem>
9499

95100
<TabItem>
@@ -98,7 +103,8 @@
98103
<TextBlock Classes="tab_header" Text="{DynamicResource Text.CommitDetail.Files}"/>
99104
</Border>
100105
</TabItem.Header>
101-
<v:RevisionFiles Margin="4,0"/>
106+
<v:RevisionFiles Margin="4,0"
107+
IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}"/>
102108
</TabItem>
103109
</TabControl>
104110
</UserControl>

src/Views/CommitDetail.axaml.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Text;
55

6+
using Avalonia;
67
using Avalonia.Controls;
78
using Avalonia.Input;
89
using Avalonia.LogicalTree;
@@ -13,6 +14,15 @@ namespace SourceGit.Views
1314
{
1415
public partial class CommitDetail : UserControl
1516
{
17+
public static readonly StyledProperty<bool> IsDetailsPanelExpandedProperty =
18+
AvaloniaProperty.Register<CommitDetail, bool>(nameof(IsDetailsPanelExpanded));
19+
20+
public bool IsDetailsPanelExpanded
21+
{
22+
get => GetValue(IsDetailsPanelExpandedProperty);
23+
set => SetValue(IsDetailsPanelExpandedProperty, value);
24+
}
25+
1626
public CommitDetail()
1727
{
1828
InitializeComponent();

src/Views/Histories.axaml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,8 @@
268268
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
269269
Background="{DynamicResource Brush.Window}"
270270
BorderBrush="{DynamicResource Brush.Border0}"
271-
Focusable="False">
272-
<GridSplitter.IsEnabled>
273-
<MultiBinding Converter="{x:Static BoolConverters.Or}">
274-
<Binding Source="{x:Static vm:Preferences.Instance}" Path="UseTwoColumnsLayoutInHistories"/>
275-
<Binding Path="IsCollapseDetails" Converter="{x:Static BoolConverters.Not}"/>
276-
</MultiBinding>
277-
</GridSplitter.IsEnabled>
278-
</GridSplitter>
271+
Focusable="False"
272+
IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}"/>
279273

280274
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
281275
<ContentControl>
@@ -290,7 +284,7 @@
290284
</Border>
291285
</TabItem.Header>
292286

293-
<Grid Margin="0,32,0,0" ClipToBounds="True">
287+
<Grid IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}">
294288
<Path Width="128" Height="128"
295289
Data="{StaticResource Icons.Detail}"
296290
HorizontalAlignment="Center"
@@ -323,7 +317,7 @@
323317

324318
<ContentControl.DataTemplates>
325319
<DataTemplate DataType="vm:CommitDetail">
326-
<v:CommitDetail/>
320+
<v:CommitDetail IsDetailsPanelExpanded="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}"/>
327321
</DataTemplate>
328322

329323
<DataTemplate DataType="vm:RevisionCompare">
@@ -341,7 +335,7 @@
341335
</Border>
342336
</TabItem.Header>
343337

344-
<v:RevisionCompare/>
338+
<v:RevisionCompare IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}"/>
345339
</TabItem>
346340

347341
<TabItem IsEnabled="False">
@@ -361,7 +355,10 @@
361355
</Border>
362356
</TabItem.Header>
363357

364-
<StackPanel ClipToBounds="True" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
358+
<StackPanel Orientation="Vertical"
359+
HorizontalAlignment="Center" VerticalAlignment="Center"
360+
IsVisible="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}">
361+
365362
<Path Width="128" Height="128"
366363
Data="{StaticResource Icons.Detail}"
367364
HorizontalAlignment="Center"

src/Views/Histories.axaml.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,15 @@ public bool IsScrollToTopVisible
294294
set => SetValue(IsScrollToTopVisibleProperty, value);
295295
}
296296

297+
public static readonly StyledProperty<bool> IsDetailsPanelExpandedProperty =
298+
AvaloniaProperty.Register<Histories, bool>(nameof(IsDetailsPanelExpanded), true);
299+
300+
public bool IsDetailsPanelExpanded
301+
{
302+
get => GetValue(IsDetailsPanelExpandedProperty);
303+
set => SetValue(IsDetailsPanelExpandedProperty, value);
304+
}
305+
297306
public Histories()
298307
{
299308
InitializeComponent();

src/Views/Repository.axaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,14 @@
926926
<v:Histories CurrentBranch="{Binding CurrentBranch, Mode=OneWay}"
927927
Bisect="{Binding Bisect, Mode=OneWay}"
928928
IssueTrackers="{Binding IssueTrackers, Mode=OneWay}"
929-
OnlyHighlightCurrentBranch="{Binding HighlightCurrentBranchOnly, Mode=OneWay}"/>
929+
OnlyHighlightCurrentBranch="{Binding HighlightCurrentBranchOnly, Mode=OneWay}">
930+
<v:Histories.IsDetailsPanelExpanded>
931+
<MultiBinding Converter="{x:Static BoolConverters.Or}">
932+
<Binding Source="{x:Static vm:Preferences.Instance}" Path="UseTwoColumnsLayoutInHistories" Mode="OneWay"/>
933+
<Binding Path="IsCollapseDetails" Converter="{x:Static BoolConverters.Not}" Mode="OneWay"/>
934+
</MultiBinding>
935+
</v:Histories.IsDetailsPanelExpanded>
936+
</v:Histories>
930937
</DataTemplate>
931938
</ContentControl.DataTemplates>
932939
</ContentControl>

0 commit comments

Comments
 (0)