mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-11-01 13:13:21 -07:00
177 lines
8.1 KiB
XML
177 lines
8.1 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
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"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
x:Class="SourceGit.Views.StashesPage"
|
|
x:DataType="vm:StashesPage">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="{Binding Source={x:Static vm:Preference.Instance}, Path=Layout.StashesLeftWidth, Mode=TwoWay}" MinWidth="300"/>
|
|
<ColumnDefinition Width="4"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Left -->
|
|
<Grid Grid.Column="0" RowDefinitions="28,36,*,28,*">
|
|
<!-- Stash Bar -->
|
|
<Grid Grid.Row="0" ColumnDefinitions="Auto,Auto,Auto,*,Auto">
|
|
<Path Grid.Column="0" Margin="8,0,0,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Stashes}"/>
|
|
<TextBlock Grid.Column="1" Text="{DynamicResource Text.Stashes.Stashes}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="8,0,0,0"/>
|
|
<TextBlock Grid.Column="2" Text="{Binding Stashes, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
|
|
<Button Grid.Column="4"
|
|
Classes="icon_button"
|
|
Width="26" Height="14"
|
|
Padding="0"
|
|
Command="{Binding Clear}"
|
|
IsEnabled="{Binding Stashes.Count, Converter={x:Static c:IntConverters.IsGreaterThanZero}}">
|
|
<Path Width="14" Height="14" Data="{StaticResource Icons.RemoveAll}"/>
|
|
</Button>
|
|
</Grid>
|
|
|
|
<!-- Search Bar -->
|
|
<Border Grid.Row="1" BorderThickness="0,1" BorderBrush="{DynamicResource Brush.Border0}">
|
|
<TextBox Height="24"
|
|
Margin="4,0"
|
|
BorderThickness="1"
|
|
CornerRadius="12"
|
|
Text="{Binding SearchFilter, Mode=TwoWay}"
|
|
BorderBrush="{DynamicResource Brush.Border2}"
|
|
VerticalContentAlignment="Center">
|
|
<TextBox.InnerLeftContent>
|
|
<Path Width="14" Height="14"
|
|
Margin="6,0,0,0"
|
|
Fill="{DynamicResource Brush.FG2}"
|
|
Data="{StaticResource Icons.Search}"/>
|
|
</TextBox.InnerLeftContent>
|
|
|
|
<TextBox.InnerRightContent>
|
|
<Button Classes="icon_button"
|
|
Width="16"
|
|
Margin="0,0,6,0"
|
|
Command="{Binding ClearSearchFilter}"
|
|
IsVisible="{Binding SearchFilter, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
|
|
HorizontalAlignment="Right">
|
|
<Path Width="14" Height="14"
|
|
Margin="0,1,0,0"
|
|
Fill="{DynamicResource Brush.FG1}"
|
|
Data="{StaticResource Icons.Clear}"/>
|
|
</Button>
|
|
</TextBox.InnerRightContent>
|
|
</TextBox>
|
|
</Border>
|
|
|
|
<!-- Stash List -->
|
|
<ListBox Grid.Row="2"
|
|
Background="{DynamicResource Brush.Contents}"
|
|
ItemsSource="{Binding VisibleStashes}"
|
|
SelectedItem="{Binding SelectedStash, Mode=TwoWay}"
|
|
SelectionMode="Single"
|
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
|
ScrollViewer.VerticalScrollBarVisibility="Auto">
|
|
<ListBox.Styles>
|
|
<Style Selector="ListBoxItem">
|
|
<Setter Property="Margin" Value="0"/>
|
|
<Setter Property="Padding" Value="0"/>
|
|
<Setter Property="Height" Value="50"/>
|
|
</Style>
|
|
</ListBox.Styles>
|
|
|
|
<ListBox.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<VirtualizingStackPanel Orientation="Vertical"/>
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>
|
|
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate DataType="m:Stash">
|
|
<Border BorderBrush="{DynamicResource Brush.Border2}" BorderThickness="0,0,0,1" Padding="4" Background="Transparent" ContextRequested="OnStashContextRequested">
|
|
<Grid RowDefinitions="Auto,*" >
|
|
<Grid Grid.Row="0" ColumnDefinitions="*,Auto">
|
|
<TextBlock Grid.Column="0" Classes="primary" Text="{Binding SHA, Converter={x:Static c:StringConverters.ToShortSHA}}" Foreground="DarkOrange" TextDecorations="Underline" Cursor="Hand"/>
|
|
<TextBlock Grid.Column="1" Classes="primary" Text="{Binding TimeStr}" Foreground="{DynamicResource Brush.FG2}" Margin="8,0,0,0"/>
|
|
</Grid>
|
|
|
|
<TextBlock Grid.Row="1" Classes="primary" Text="{Binding Message}" VerticalAlignment="Bottom"/>
|
|
</Grid>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
|
|
<!-- Changes Bar -->
|
|
<Border Grid.Row="3" BorderThickness="0,1" BorderBrush="{DynamicResource Brush.Border0}">
|
|
<Grid ColumnDefinitions="Auto,Auto,*">
|
|
<Path Grid.Column="0" Margin="8,0,0,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Changes}"/>
|
|
<TextBlock Grid.Column="1" Text="{DynamicResource Text.Stashes.Changes}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold" Margin="8,0,0,0"/>
|
|
<TextBlock Grid.Column="2" Text="{Binding Changes, Converter={x:Static c:ListConverters.ToCount}}" Foreground="{DynamicResource Brush.FG2}" FontWeight="Bold"/>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- View Changes -->
|
|
<ListBox Grid.Row="4"
|
|
Background="{DynamicResource Brush.Contents}"
|
|
ItemsSource="{Binding Changes}"
|
|
SelectedItem="{Binding SelectedChange, Mode=TwoWay}"
|
|
SelectionMode="Single"
|
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
|
ScrollViewer.VerticalScrollBarVisibility="Auto">
|
|
<ListBox.Styles>
|
|
<Style Selector="ListBoxItem">
|
|
<Setter Property="Margin" Value="0"/>
|
|
<Setter Property="Padding" Value="0"/>
|
|
<Setter Property="Height" Value="26"/>
|
|
</Style>
|
|
</ListBox.Styles>
|
|
|
|
<ListBox.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<VirtualizingStackPanel Orientation="Vertical"/>
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>
|
|
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate DataType="m:Change">
|
|
<Grid ColumnDefinitions="24,*">
|
|
<v:ChangeStatusIcon Grid.Column="0" Width="14" Height="14" Change="{Binding}"/>
|
|
<TextBlock Grid.Column="1" Classes="primary" Text="{Binding Path}" Margin="4,0,0,0"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Grid>
|
|
|
|
<GridSplitter Grid.Column="1"
|
|
MinWidth=".5"
|
|
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
|
|
Background="Transparent"
|
|
BorderThickness="1,0,0,0"
|
|
BorderBrush="{DynamicResource Brush.Border0}"/>
|
|
|
|
<!-- Right -->
|
|
<Grid Grid.Column="2" Margin="0,4,4,4">
|
|
<Border BorderThickness="1" BorderBrush="{DynamicResource Brush.Border2}">
|
|
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
|
|
<Path Width="64" Height="64" Data="{StaticResource Icons.Diff}" Fill="{DynamicResource Brush.FG2}"/>
|
|
<TextBlock Margin="0,16,0,0"
|
|
Text="{DynamicResource Text.Diff.Welcome}"
|
|
FontSize="18" FontWeight="Bold"
|
|
Foreground="{DynamicResource Brush.FG2}"
|
|
HorizontalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<ContentControl Content="{Binding DiffContext}">
|
|
<ContentControl.DataTemplates>
|
|
<DataTemplate DataType="vm:DiffContext">
|
|
<v:DiffView/>
|
|
</DataTemplate>
|
|
</ContentControl.DataTemplates>
|
|
</ContentControl>
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|