Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 37 additions & 7 deletions src/ViewModels/Histories.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,10 @@ public GridLength TopArea

public GridLength BottomArea
{
get => _isCollapseDetails ? new GridLength(28, GridUnitType.Pixel) : _bottomArea;
get => _bottomArea;
set
{
if (!Preferences.Instance.UseTwoColumnsLayoutInHistories && !_isCollapseDetails)
if (!Preferences.Instance.UseTwoColumnsLayoutInHistories)
SetProperty(ref _bottomArea, value);
}
}
Expand All @@ -168,14 +168,43 @@ public bool IsCollapseDetails
get => _isCollapseDetails;
set
{
if (!Preferences.Instance.UseTwoColumnsLayoutInHistories && SetProperty(ref _isCollapseDetails, value))
{
OnPropertyChanged(nameof(TopArea));
OnPropertyChanged(nameof(BottomArea));
}
if (Preferences.Instance.UseTwoColumnsLayoutInHistories)
return;

if (SetProperty(ref _isCollapseDetails, value))
if (value)
{
_bottomAreaBackup = _bottomArea;
BottomArea = new GridLength(28, GridUnitType.Pixel);
}
else
BottomArea = _bottomAreaBackup;
}
}

public void BeginDetailsResize()
{
if (!Preferences.Instance.UseTwoColumnsLayoutInHistories && !_isCollapseDetails)
_bottomAreaBackup = _bottomArea;
}

public void PreviewDetailsResize(bool shouldCollapse)
{
if (!Preferences.Instance.UseTwoColumnsLayoutInHistories)
SetProperty(ref _isCollapseDetails, shouldCollapse, nameof(IsCollapseDetails));
}

public void EndDetailsResize(bool shouldCollapse)
{
if (Preferences.Instance.UseTwoColumnsLayoutInHistories)
return;

SetProperty(ref _isCollapseDetails, shouldCollapse, nameof(IsCollapseDetails));

if (shouldCollapse)
BottomArea = new GridLength(28, GridUnitType.Pixel);
}

public Histories(Repository repo)
{
_repo = repo;
Expand Down Expand Up @@ -506,6 +535,7 @@ private void GenerateGraph(List<Models.Commit> commits, bool commitsChanged = fa
private GridLength _rightArea = new(1, GridUnitType.Star);
private GridLength _topArea = new(1, GridUnitType.Star);
private GridLength _bottomArea = new(1, GridUnitType.Star);
private GridLength _bottomAreaBackup = new(1, GridUnitType.Star);
private bool _isCollapseDetails = false;
}
}
6 changes: 4 additions & 2 deletions src/Views/Histories.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,11 @@
Background="{DynamicResource Brush.Window}"
BorderBrush="{DynamicResource Brush.Border0}"
Focusable="False"
IsEnabled="{Binding #ThisControl.IsDetailsPanelExpanded, Mode=OneWay}"/>
DragStarted="OnDetailsSplitterDragStarted"
DragDelta="OnDetailsSplitterDragDelta"
DragCompleted="OnDetailsSplitterDragCompleted"/>

<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" >
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" x:Name="DetailsArea">
<ContentControl Content="{Binding DetailContext, Mode=OneWay}">
<ContentControl.DataTemplates>
<DataTemplate DataType="m:Null">
Expand Down
27 changes: 27 additions & 0 deletions src/Views/Histories.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -648,6 +648,33 @@ private void OnTabHeaderPointerPressed(object sender, PointerPressedEventArgs e)
vm.IsCollapseDetails = false;
}

private void OnDetailsSplitterDragStarted(object sender, VectorEventArgs e)
{
if (ViewModels.Preferences.Instance.UseTwoColumnsLayoutInHistories)
return;

if (DataContext is ViewModels.Histories vm)
vm.BeginDetailsResize();
}

private void OnDetailsSplitterDragDelta(object sender, VectorEventArgs e)
{
if (ViewModels.Preferences.Instance.UseTwoColumnsLayoutInHistories)
return;

if (DataContext is ViewModels.Histories vm)
vm.PreviewDetailsResize(DetailsArea.Bounds.Height <= 48);
}

private void OnDetailsSplitterDragCompleted(object sender, VectorEventArgs e)
{
if (ViewModels.Preferences.Instance.UseTwoColumnsLayoutInHistories)
return;

if (DataContext is ViewModels.Histories vm)
vm.EndDetailsResize(DetailsArea.Bounds.Height <= 48);
}

private void OnOpenDetailsAsStandalone(object sender, RoutedEventArgs e)
{
if (DataContext is ViewModels.Histories vm)
Expand Down