mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-28 15:45:00 +00:00
215 lines
11 KiB
XML
215 lines
11 KiB
XML
<Window x:Class="SourceGit.UI.InteractiveRebase"
|
|
x:Name="me"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
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:local="clr-namespace:SourceGit.UI"
|
|
mc:Ignorable="d"
|
|
Title="{StaticResource Text.InteractiveRebase}"
|
|
Height="600" Width="800">
|
|
|
|
<!-- Enable WindowChrome -->
|
|
<WindowChrome.WindowChrome>
|
|
<WindowChrome UseAeroCaptionButtons="False" CornerRadius="0" CaptionHeight="32" ResizeBorderThickness="1"/>
|
|
</WindowChrome.WindowChrome>
|
|
|
|
<!-- Window Content -->
|
|
<Border Background="{StaticResource Brush.Border0}" BorderBrush="{StaticResource Brush.Border0}">
|
|
<!-- Fix Maximize BUG -->
|
|
<Border.Style>
|
|
<Style TargetType="{x:Type Border}">
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding WindowState, ElementName=me}" Value="Maximized">
|
|
<Setter Property="Margin" Value="6"/>
|
|
<Setter Property="BorderThickness" Value="0"/>
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding WindowState, ElementName=me}" Value="Normal">
|
|
<Setter Property="Margin" Value="0"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="32"/>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="1"/>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="40"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Title bar -->
|
|
<Grid Grid.Row="0" Background="{StaticResource Brush.TitleBar}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Logo & TITLE -->
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal">
|
|
<Path
|
|
Margin="6,0,0,0"
|
|
Data="{StaticResource Icon.Branch}"
|
|
WindowChrome.IsHitTestVisibleInChrome="True"
|
|
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
|
<Label Content="{StaticResource Text.InteractiveRebase}" FontWeight="Light"/>
|
|
</StackPanel>
|
|
|
|
<!-- Options -->
|
|
<StackPanel Grid.Column="2" Orientation="Horizontal" WindowChrome.IsHitTestVisibleInChrome="True">
|
|
<Button Click="Minimize" Width="32" Style="{StaticResource Style.Button.HighlightHover}">
|
|
<Path Width="10" Height="10" Data="{StaticResource Icon.Minimize}"/>
|
|
</Button>
|
|
<Button Click="MaximizeOrRestore" Width="32" Style="{StaticResource Style.Button.HighlightHover}">
|
|
<Path Width="10" Height="10" Data="{StaticResource Icon.Maximize}"/>
|
|
</Button>
|
|
<Button Click="Quit" Width="32">
|
|
<Button.Style>
|
|
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style.Button.HighlightHover}">
|
|
<Style.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="Background" Value="Red"/>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Button.Style>
|
|
|
|
<Path Width="10" Data="{StaticResource Icon.Close}"/>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- Commit List -->
|
|
<ListView Grid.Row="1"
|
|
x:Name="commitList"
|
|
Background="{StaticResource Brush.Contents}"
|
|
Style="{StaticResource Style.ListView.Borderless}"
|
|
ItemsSource="{Binding ElementName=me, Path=Items}"
|
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
|
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
|
SelectionChanged="CommitSelectionChanged"
|
|
BorderThickness="0">
|
|
<ListView.ItemTemplate>
|
|
<DataTemplate DataType="{x:Type local:InteractiveRebaseItem}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="80"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="80"/>
|
|
<ColumnDefinition Width="128"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<ComboBox
|
|
Grid.Column="0"
|
|
ItemsSource="{Binding Source={x:Static local:InteractiveRebaseModeInfo.Supported}}"
|
|
SelectedIndex="{Binding Path=Mode, Mode=TwoWay}"
|
|
BorderThickness="0">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate DataType="{x:Type local:InteractiveRebaseModeInfo}">
|
|
<Grid Height="20">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="20"/>
|
|
<ColumnDefinition Width="60"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Path Grid.Column="0" Width="12" Height="12" Margin="4,0,0,0" Fill="{Binding Theme}" Data="M 0,0 A 180,180 180 1 1 1,1 Z"/>
|
|
<Label Grid.Column="1" Content="{Binding Title}" Padding="4,0"/>
|
|
<Label Grid.Column="2" Content="{Binding Desc}" Foreground="{StaticResource Brush.FG2}" FontSize="11" Padding="4,0"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
|
|
<TextBlock
|
|
Grid.Column="1"
|
|
Text="{Binding Commit.Subject}"
|
|
VerticalAlignment="Center"
|
|
Foreground="{StaticResource Brush.FG1}"/>
|
|
|
|
<TextBlock
|
|
Grid.Column="2"
|
|
Foreground="{StaticResource Brush.FG1}"
|
|
VerticalAlignment="Center"
|
|
Margin="8,0"
|
|
Text="{Binding Commit.Committer.Name}"/>
|
|
|
|
<TextBlock
|
|
Grid.Column="3"
|
|
Foreground="{StaticResource Brush.FG1}"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding Commit.Committer.Time}"/>
|
|
|
|
<StackPanel
|
|
Grid.Column="4"
|
|
Orientation="Horizontal"
|
|
Margin="4,0">
|
|
<Button Click="MoveUp" ToolTip="{StaticResource Text.InteractiveRebase.MoveUp}">
|
|
<Path Width="12" Height="12" Data="{StaticResource Icon.Up}"/>
|
|
</Button>
|
|
|
|
<Button Click="MoveDown" ToolTip="{StaticResource Text.InteractiveRebase.MoveDown}" Margin="4,0,0,0">
|
|
<Path Width="12" Height="12" Data="{StaticResource Icon.Down}"/>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListView.ItemTemplate>
|
|
</ListView>
|
|
|
|
<!-- Loading Tip -->
|
|
<Grid Grid.Row="1" IsHitTestVisible="False">
|
|
<!-- Loading tip -->
|
|
<Path x:Name="loading" Grid.ColumnSpan="5" Data="{StaticResource Icon.Loading}" RenderTransformOrigin=".5,.5" Visibility="Hidden">
|
|
<Path.RenderTransform>
|
|
<RotateTransform Angle="0"/>
|
|
</Path.RenderTransform>
|
|
|
|
<Path.Style>
|
|
<Style BasedOn="{StaticResource Style.Icon}" TargetType="{x:Type Path}">
|
|
<Setter Property="Width" Value="48"/>
|
|
<Setter Property="Height" Value="48"/>
|
|
<Setter Property="HorizontalAlignment" Value="Center"/>
|
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
|
<Setter Property="Fill" Value="{StaticResource Brush.FG2}"/>
|
|
</Style>
|
|
</Path.Style>
|
|
</Path>
|
|
</Grid>
|
|
|
|
<!-- Splitter -->
|
|
<GridSplitter Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{StaticResource Brush.Window}"/>
|
|
|
|
<!-- Commit Detail -->
|
|
<local:CommitViewer x:Name="commitViewer" Grid.Row="3" Background="{StaticResource Brush.Window}"/>
|
|
|
|
<!-- Options Bar -->
|
|
<Grid Grid.Row="5" Background="{StaticResource Brush.Window}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="80"/>
|
|
<ColumnDefinition Width="8"/>
|
|
<ColumnDefinition Width="80"/>
|
|
<ColumnDefinition Width="4"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="4,0,24,0">
|
|
<Label Grid.Column="0" Content="{StaticResource Text.InteractiveRebase.Target}"/>
|
|
<Path Data="{StaticResource Icon.Branch}"/>
|
|
<Label x:Name="branch"/>
|
|
|
|
<Label Grid.Column="2" Content="{StaticResource Text.InteractiveRebase.On}" Margin="8,0,0,0"/>
|
|
<Path Data="{StaticResource Icon.Commit}"/>
|
|
<Label x:Name="on"/>
|
|
</StackPanel>
|
|
|
|
<Button Grid.Column="1" Height="26" Click="Start" Style="{StaticResource Style.Button.AccentBordered}" Content="{StaticResource Text.InteractiveRebase.Start}"/>
|
|
<Button Grid.Column="3" Height="26" Click="Cancel" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.Cancel}"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
</Window>
|