Skip to content

Commit b670312

Browse files
committed
ux: new tooltip for branch tree node (#1562)
Signed-off-by: leo <[email protected]>
1 parent a6b2e97 commit b670312

File tree

6 files changed

+63
-16
lines changed

6 files changed

+63
-16
lines changed

src/Converters/StringConverters.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,8 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu
8484

8585
public static readonly FuncValueConverter<string, bool> IsNotNullOrWhitespace =
8686
new FuncValueConverter<string, bool>(v => v != null && v.Trim().Length > 0);
87+
88+
public static readonly FuncValueConverter<string, string> ToFriendlyUpstream =
89+
new FuncValueConverter<string, string>(v => v != null ? v.Substring(13) : string.Empty);
8790
}
8891
}

src/Resources/Locales/en_US.axaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@
7070
<x:String x:Key="Text.BranchCM.ResetToSelectedCommit" xml:space="preserve">Reset ${0}$ to ${1}$...</x:String>
7171
<x:String x:Key="Text.BranchCM.Tracking" xml:space="preserve">Set Tracking Branch...</x:String>
7272
<x:String x:Key="Text.BranchCompare" xml:space="preserve">Branch Compare</x:String>
73+
<x:String x:Key="Text.BranchTree.Local" xml:space="preserve">LOCAL</x:String>
74+
<x:String x:Key="Text.BranchTree.Remote" xml:space="preserve">REMOTE</x:String>
75+
<x:String x:Key="Text.BranchTree.Tracking" xml:space="preserve">TRACKING</x:String>
76+
<x:String x:Key="Text.BranchTree.URL" xml:space="preserve">URL</x:String>
7377
<x:String x:Key="Text.BranchUpstreamInvalid" xml:space="preserve">Invalid upstream!</x:String>
7478
<x:String x:Key="Text.Cancel" xml:space="preserve">CANCEL</x:String>
7579
<x:String x:Key="Text.ChangeCM.CheckoutFirstParentRevision" xml:space="preserve">Reset to Parent Revision</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@
7474
<x:String x:Key="Text.BranchCM.ResetToSelectedCommit" xml:space="preserve">重置 ${0}$ 到 ${1}$...</x:String>
7575
<x:String x:Key="Text.BranchCM.Tracking" xml:space="preserve">切换上游分支 ...</x:String>
7676
<x:String x:Key="Text.BranchCompare" xml:space="preserve">分支比较</x:String>
77+
<x:String x:Key="Text.BranchTree.Local" xml:space="preserve">本地</x:String>
78+
<x:String x:Key="Text.BranchTree.Remote" xml:space="preserve">远程</x:String>
79+
<x:String x:Key="Text.BranchTree.Tracking" xml:space="preserve">上游分支</x:String>
80+
<x:String x:Key="Text.BranchTree.URL" xml:space="preserve">远程地址</x:String>
7781
<x:String x:Key="Text.BranchUpstreamInvalid" xml:space="preserve">跟踪的上游分支不存在或已删除!</x:String>
7882
<x:String x:Key="Text.Cancel" xml:space="preserve">取 消</x:String>
7983
<x:String x:Key="Text.ChangeCM.CheckoutFirstParentRevision" xml:space="preserve">重置文件到上一版本</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@
7474
<x:String x:Key="Text.BranchCM.ResetToSelectedCommit" xml:space="preserve">重設 ${0}$ 至 ${1}$...</x:String>
7575
<x:String x:Key="Text.BranchCM.Tracking" xml:space="preserve">切換上游分支...</x:String>
7676
<x:String x:Key="Text.BranchCompare" xml:space="preserve">分支比較</x:String>
77+
<x:String x:Key="Text.BranchTree.Local" xml:space="preserve">本機</x:String>
78+
<x:String x:Key="Text.BranchTree.Remote" xml:space="preserve">遠端</x:String>
79+
<x:String x:Key="Text.BranchTree.Tracking" xml:space="preserve">上游分支</x:String>
80+
<x:String x:Key="Text.BranchTree.URL" xml:space="preserve">遠端網址</x:String>
7781
<x:String x:Key="Text.BranchUpstreamInvalid" xml:space="preserve">追蹤上游分支不存在或已刪除!</x:String>
7882
<x:String x:Key="Text.Cancel" xml:space="preserve">取 消</x:String>
7983
<x:String x:Key="Text.ChangeCM.CheckoutFirstParentRevision" xml:space="preserve">重設檔案到上一版本</x:String>

src/ViewModels/BranchTreeNode.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,6 @@ public string BranchesCount
5454
get => Counter > 0 ? $"({Counter})" : string.Empty;
5555
}
5656

57-
public string Tooltip
58-
{
59-
get
60-
{
61-
if (Backend is Models.Branch b)
62-
return b.FriendlyName;
63-
64-
if (Backend is Models.Remote r)
65-
return r.URL;
66-
67-
return null;
68-
}
69-
}
70-
7157
private Models.FilterMode _filterMode = Models.FilterMode.None;
7258
private bool _isExpanded = false;
7359
private CornerRadius _cornerRadius = new CornerRadius(4);

src/Views/BranchTree.axaml

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
<UserControl xmlns="https://github.com/avaloniaui"
1+
<UserControl xmlns="https://github.com/avaloniaui"
22
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
33
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
44
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:m="using:SourceGit.Models"
56
xmlns:c="using:SourceGit.Converters"
67
xmlns:v="using:SourceGit.Views"
78
xmlns:vm="using:SourceGit.ViewModels"
@@ -35,8 +36,53 @@
3536
<DataTemplate DataType="vm:BranchTreeNode">
3637
<Border Background="Transparent"
3738
PointerPressed="OnNodePointerPressed"
38-
ToolTip.Tip="{Binding Tooltip}"
39+
ToolTip.Tip="{Binding Backend}"
3940
ToolTip.Placement="Right">
41+
<Border.DataTemplates>
42+
<DataTemplate DataType="m:Branch">
43+
<StackPanel Orientation="Vertical">
44+
<StackPanel Orientation="Horizontal">
45+
<Path Width="12" Height="12" Data="{StaticResource Icons.Branch}"/>
46+
<TextBlock FontWeight="Bold" VerticalAlignment="Center" Margin="8,0,0,0" Text="{Binding FriendlyName}"/>
47+
<Border Background="Green" Margin="4,0,0,0" CornerRadius="4" VerticalAlignment="Center" IsVisible="{Binding IsLocal}">
48+
<TextBlock Text="{DynamicResource Text.BranchTree.Local}" FontSize="12" Classes="primary" Margin="4,1" Foreground="White" VerticalAlignment="Center"/>
49+
</Border>
50+
<Border Background="Gray" Margin="4,0,0,0" CornerRadius="4" VerticalAlignment="Center" IsVisible="{Binding !IsLocal}">
51+
<TextBlock Text="{DynamicResource Text.BranchTree.Remote}" FontSize="12" Classes="primary" Margin="4,1" Foreground="White" VerticalAlignment="Center"/>
52+
</Border>
53+
</StackPanel>
54+
55+
<StackPanel Orientation="Horizontal"
56+
Margin="0,8,0,0"
57+
IsVisible="{Binding Upstream, Converter={x:Static StringConverters.IsNotNullOrEmpty}}">
58+
<TextBlock Classes="info_label"
59+
HorizontalAlignment="Left" VerticalAlignment="Center"
60+
Text="{DynamicResource Text.BranchTree.Tracking}"/>
61+
62+
<TextBlock Margin="6,0,0,0"
63+
Text="{Binding Upstream, Mode=OneWay, Converter={x:Static c:StringConverters.ToFriendlyUpstream}}"/>
64+
</StackPanel>
65+
</StackPanel>
66+
</DataTemplate>
67+
68+
<DataTemplate DataType="m:Remote">
69+
<StackPanel Orientation="Vertical">
70+
<StackPanel Orientation="Horizontal">
71+
<Path Width="12" Height="12" Data="{StaticResource Icons.Remote}"/>
72+
<TextBlock FontWeight="Bold" VerticalAlignment="Center" Text="{Binding Name}" Margin="8,0,0,0"/>
73+
</StackPanel>
74+
75+
<StackPanel Orientation="Horizontal" Margin="0,8,0,0">
76+
<TextBlock Classes="info_label"
77+
HorizontalAlignment="Left" VerticalAlignment="Center"
78+
Text="{DynamicResource Text.BranchTree.URL}"/>
79+
80+
<TextBlock Margin="6,0,0,0" Foreground="{DynamicResource Brush.Link}" Text="{Binding URL, Mode=OneWay}"/>
81+
</StackPanel>
82+
</StackPanel>
83+
</DataTemplate>
84+
</Border.DataTemplates>
85+
4086
<Grid Height="24"
4187
Margin="{Binding Depth, Converter={x:Static c:IntConverters.ToTreeMargin}}"
4288
ColumnDefinitions="16,*">

0 commit comments

Comments
 (0)