ux: new tooltip style for local branch

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo
2025-08-27 16:13:07 +08:00
parent c3a4683f4b
commit 352a28701b
5 changed files with 26 additions and 21 deletions

View File

@@ -44,6 +44,7 @@ namespace SourceGit.Models
public bool IsUpstreamGone { get; set; }
public string WorktreePath { get; set; }
public bool HasWorktree => !IsCurrent && !string.IsNullOrEmpty(WorktreePath);
public string FriendlyName => IsLocal ? Name : $"{Remote}/{Name}";
}
}

View File

@@ -77,6 +77,7 @@
<x:String x:Key="Text.BranchTree.Remote" xml:space="preserve">REMOTE</x:String>
<x:String x:Key="Text.BranchTree.Tracking" xml:space="preserve">TRACKING</x:String>
<x:String x:Key="Text.BranchTree.URL" xml:space="preserve">URL</x:String>
<x:String x:Key="Text.BranchTree.Worktree" xml:space="preserve">WORKTREE</x:String>
<x:String x:Key="Text.Cancel" xml:space="preserve">CANCEL</x:String>
<x:String x:Key="Text.ChangeCM.CheckoutFirstParentRevision" xml:space="preserve">Reset to Parent Revision</x:String>
<x:String x:Key="Text.ChangeCM.CheckoutThisRevision" xml:space="preserve">Reset to This Revision</x:String>

View File

@@ -81,6 +81,7 @@
<x:String x:Key="Text.BranchTree.Remote" xml:space="preserve">远程</x:String>
<x:String x:Key="Text.BranchTree.Tracking" xml:space="preserve">上游分支</x:String>
<x:String x:Key="Text.BranchTree.URL" xml:space="preserve">远程地址</x:String>
<x:String x:Key="Text.BranchTree.Worktree" xml:space="preserve">工作树</x:String>
<x:String x:Key="Text.Cancel" xml:space="preserve">取 消</x:String>
<x:String x:Key="Text.ChangeCM.CheckoutFirstParentRevision" xml:space="preserve">重置文件到上一版本</x:String>
<x:String x:Key="Text.ChangeCM.CheckoutThisRevision" xml:space="preserve">重置文件到该版本</x:String>

View File

@@ -81,6 +81,7 @@
<x:String x:Key="Text.BranchTree.Remote" xml:space="preserve">遠端</x:String>
<x:String x:Key="Text.BranchTree.Tracking" xml:space="preserve">上游分支</x:String>
<x:String x:Key="Text.BranchTree.URL" xml:space="preserve">遠端網址</x:String>
<x:String x:Key="Text.BranchTree.Worktree" xml:space="preserve">工作區</x:String>
<x:String x:Key="Text.Cancel" xml:space="preserve">取 消</x:String>
<x:String x:Key="Text.ChangeCM.CheckoutFirstParentRevision" xml:space="preserve">重設檔案到上一版本</x:String>
<x:String x:Key="Text.ChangeCM.CheckoutThisRevision" xml:space="preserve">重設檔案為此版本</x:String>

View File

@@ -44,36 +44,37 @@
<StackPanel Orientation="Horizontal">
<Path Width="12" Height="12" Data="{StaticResource Icons.Branch}"/>
<TextBlock FontWeight="Bold" VerticalAlignment="Center" Margin="4,0,0,0" Text="{Binding FriendlyName}"/>
<TextBlock Classes="primary" FontSize="12" Margin="4,0" VerticalAlignment="Center">
<TextBlock.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding Path="IsCurrent" Converter="{x:Static BoolConverters.Not}"/>
<Binding Path="WorktreePath" Converter="{x:Static StringConverters.IsNotNullOrEmpty}"/>
</MultiBinding>
</TextBlock.IsVisible>
<Run Text="("/>
<Run Text="{Binding WorktreePath, Mode=OneWay}" TextDecorations="Underline"/>
<Run Text=")"/>
</TextBlock>
<Border Background="Green" Margin="4,0,0,0" CornerRadius="4" VerticalAlignment="Center" IsVisible="{Binding !IsLocal}">
<TextBlock Text="{DynamicResource Text.BranchTree.Remote}" FontSize="12" Classes="primary" Margin="4,0" Foreground="White" VerticalAlignment="Center"/>
</Border>
</StackPanel>
<StackPanel Orientation="Horizontal"
Margin="0,8,0,0"
IsVisible="{Binding Upstream, Converter={x:Static StringConverters.IsNotNullOrEmpty}}">
<TextBlock Classes="info_label"
<Grid RowDefinitions="Auto,Auto" ColumnDefinitions="Auto,Auto" Margin="0,8,0,0" IsVisible="{Binding IsLocal, Mode=OneWay}">
<TextBlock Grid.Row="0" Grid.Column="0"
Classes="info_label"
HorizontalAlignment="Left" VerticalAlignment="Center"
Text="{DynamicResource Text.BranchTree.Tracking}"/>
<StackPanel Grid.Row="0" Grid.Column="1"
Margin="8,0,0,0"
Orientation="Horizontal">
<TextBlock Text="{Binding Upstream, Mode=OneWay, Converter={x:Static c:StringConverters.ToFriendlyUpstream}}"/>
<TextBlock Margin="6,0,0,0"
Text="{Binding Upstream, Mode=OneWay, Converter={x:Static c:StringConverters.ToFriendlyUpstream}}"/>
<Border Background="OrangeRed" Margin="4,0,0,0" CornerRadius="4" VerticalAlignment="Center" IsVisible="{Binding IsUpstreamGone}">
<TextBlock Text="{DynamicResource Text.BranchTree.InvalidUpstream}" FontSize="12" Classes="primary" Margin="4,1" Foreground="White" VerticalAlignment="Center"/>
</Border>
</StackPanel>
<Border Background="OrangeRed" Margin="4,0,0,0" CornerRadius="4" VerticalAlignment="Center" IsVisible="{Binding IsUpstreamGone}">
<TextBlock Text="{DynamicResource Text.BranchTree.InvalidUpstream}" FontSize="12" Classes="primary" Margin="4,1" Foreground="White" VerticalAlignment="Center"/>
</Border>
</StackPanel>
<TextBlock Grid.Row="1" Grid.Column="0"
Classes="info_label"
Margin="0,4,0,0"
HorizontalAlignment="Left" VerticalAlignment="Center"
Text="{DynamicResource Text.BranchTree.Worktree}"
IsVisible="{Binding HasWorktree}"/>
<TextBlock Grid.Row="1" Grid.Column="1"
Margin="8,4,0,0"
Text="{Binding WorktreePath, Mode=OneWay}"
IsVisible="{Binding HasWorktree}"/>
</Grid>
</StackPanel>
</DataTemplate>