Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 338b194

Browse files
ux: new context menu for git user
Signed-off-by: leo <longshuang@msn.cn>
1 parent 6bb83e1 commit 338b194

File tree

6 files changed

+70
-16
lines changed

6 files changed

+70
-16
lines changed

‎src/Resources/Icons.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<StreamGeometry x:Key="Icons.DoubleUp">M768 800V685L512 480 256 685V800l256-205L768 800zM512 339 768 544V429L512 224 256 429V544l256-205z</StreamGeometry>
3535
<StreamGeometry x:Key="Icons.Down">M509 546l271-271 91 91-348 349-1-1-13 13-363-361 91-91z</StreamGeometry>
3636
<StreamGeometry x:Key="Icons.Edit">M652 157a113 113 0 11156 161L731 395 572 236l80-80 1 1zM334 792v0H175v-159l358-358 159 159-358 358zM62 850h900v113H62v-113z</StreamGeometry>
37+
<StreamGeometry x:Key="Icons.Email">M926 356V780a73 73 0 01-73 73H171a73 73 0 01-73-73V356l304 258a171 171 0 00221 0L926 356zM853 171a74 74 0 0126 5 73 73 0 0131 22 74 74 0 0111 18c3 8 5 16 6 24L926 244v24L559 581a73 73 0 01-91 3l-4-3L98 268v-24a73 73 0 0140-65A73 73 0 01171 171h683z</StreamGeometry>
3738
<StreamGeometry x:Key="Icons.Empty">M469 235V107h85v128h-85zm-162-94 85 85-60 60-85-85 60-60zm469 60-85 85-60-60 85-85 60 60zm-549 183A85 85 0 01302 341H722a85 85 0 0174 42l131 225A85 85 0 01939 652V832a85 85 0 01-85 85H171a85 85 0 01-85-85v-180a85 85 0 0112-43l131-225zM722 427H302l-100 171h255l10 29a59 59 0 002 5c2 4 5 9 9 14 8 9 18 17 34 17 16 0 26-7 34-17a72 72 0 0011-18l0-0 10-29h255l-100-171zM853 683H624a155 155 0 01-12 17C593 722 560 747 512 747c-48 0-81-25-99-47a155 155 0 01-12-17H171v149h683v-149z</StreamGeometry>
3839
<StreamGeometry x:Key="Icons.Error">M576 832C576 867 547 896 512 896 477 896 448 867 448 832 448 797 477 768 512 768 547 768 576 797 576 832ZM512 256C477 256 448 285 448 320L448 640C448 675 477 704 512 704 547 704 576 675 576 640L576 320C576 285 547 256 512 256ZM1024 896C1024 967 967 1024 896 1024L128 1024C57 1024 0 967 0 896 0 875 5 855 14 837L14 837 398 69 398 69C420 28 462 0 512 0 562 0 604 28 626 69L1008 835C1018 853 1024 874 1024 896ZM960 896C960 885 957 875 952 865L952 864 951 863 569 98C557 77 536 64 512 64 488 64 466 77 455 99L452 105 92 825 93 825 71 867C66 876 64 886 64 896 64 931 93 960 128 960L896 960C931 960 960 931 960 896Z</StreamGeometry>
3940
<StreamGeometry x:Key="Icons.Explore">M928 128l-416 0-32-64-352 0-64 128 896 0zM904 704l75 0 45-448-1024 0 64 640 484 0c-105-38-180-138-180-256 0-150 122-272 272-272s272 122 272 272c0 22-3 43-8 64zM1003 914l-198-175c17-29 27-63 27-99 0-106-86-192-192-192s-192 86-192 192 86 192 192 192c36 0 70-10 99-27l175 198c23 27 62 28 87 3l6-6c25-25 23-64-3-87zM640 764c-68 0-124-56-124-124s56-124 124-124 124 56 124 124-56 124-124 124z</StreamGeometry>

‎src/Resources/Locales/en_US.axaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@
163163
<x:String x:Key="Text.CommitDetail.Info.Committer" xml:space="preserve">COMMITTER</x:String>
164164
<x:String x:Key="Text.CommitDetail.Info.ContainsIn" xml:space="preserve">Check refs that contains this commit</x:String>
165165
<x:String x:Key="Text.CommitDetail.Info.ContainsIn.Title" xml:space="preserve">COMMIT IS CONTAINED BY</x:String>
166+
<x:String x:Key="Text.CommitDetail.Info.CopyEmail" xml:space="preserve">Copy Email</x:String>
167+
<x:String x:Key="Text.CommitDetail.Info.CopyName" xml:space="preserve">Copy Name</x:String>
168+
<x:String x:Key="Text.CommitDetail.Info.CopyNameAndEmail" xml:space="preserve">Copy Name &amp; Email</x:String>
166169
<x:String x:Key="Text.CommitDetail.Info.GotoChangesPage" xml:space="preserve">Shows only the first 100 changes. See all changes on the CHANGES tab.</x:String>
167170
<x:String x:Key="Text.CommitDetail.Info.Key" xml:space="preserve">Key:</x:String>
168171
<x:String x:Key="Text.CommitDetail.Info.Message" xml:space="preserve">MESSAGE</x:String>

‎src/Resources/Locales/zh_CN.axaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,9 @@
167167
<x:String x:Key="Text.CommitDetail.Info.Committer" xml:space="preserve">提交者</x:String>
168168
<x:String x:Key="Text.CommitDetail.Info.ContainsIn" xml:space="preserve">查看包含此提交的分支/标签</x:String>
169169
<x:String x:Key="Text.CommitDetail.Info.ContainsIn.Title" xml:space="preserve">本提交已被以下分支/标签包含</x:String>
170+
<x:String x:Key="Text.CommitDetail.Info.CopyEmail" xml:space="preserve">复制电子邮箱</x:String>
171+
<x:String x:Key="Text.CommitDetail.Info.CopyName" xml:space="preserve">复制用户名</x:String>
172+
<x:String x:Key="Text.CommitDetail.Info.CopyNameAndEmail" xml:space="preserve">复制用户名及邮箱</x:String>
170173
<x:String x:Key="Text.CommitDetail.Info.GotoChangesPage" xml:space="preserve">仅显示前100项变更。请前往【变更对比】页面查看全部。</x:String>
171174
<x:String x:Key="Text.CommitDetail.Info.Key" xml:space="preserve">签名密钥 :</x:String>
172175
<x:String x:Key="Text.CommitDetail.Info.Message" xml:space="preserve">提交信息</x:String>

‎src/Resources/Locales/zh_TW.axaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,9 @@
167167
<x:String x:Key="Text.CommitDetail.Info.Committer" xml:space="preserve">提交者</x:String>
168168
<x:String x:Key="Text.CommitDetail.Info.ContainsIn" xml:space="preserve">檢視包含此提交的分支或標籤</x:String>
169169
<x:String x:Key="Text.CommitDetail.Info.ContainsIn.Title" xml:space="preserve">本提交包含於以下分支或標籤</x:String>
170+
<x:String x:Key="Text.CommitDetail.Info.CopyEmail" xml:space="preserve">複製電子郵件</x:String>
171+
<x:String x:Key="Text.CommitDetail.Info.CopyName" xml:space="preserve">複製名稱</x:String>
172+
<x:String x:Key="Text.CommitDetail.Info.CopyNameAndEmail" xml:space="preserve">複製名稱及電子郵件</x:String>
170173
<x:String x:Key="Text.CommitDetail.Info.GotoChangesPage" xml:space="preserve">僅顯示前 100 項變更。請前往 [變更對比] 頁面以瀏覽所有變更。</x:String>
171174
<x:String x:Key="Text.CommitDetail.Info.Key" xml:space="preserve">簽章金鑰:</x:String>
172175
<x:String x:Key="Text.CommitDetail.Info.Message" xml:space="preserve">提交訊息</x:String>

‎src/Views/CommitBaseInfo.axaml

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@
1919
<v:Avatar Grid.Column="0" Width="64" Height="64" HorizontalAlignment="Right" User="{Binding Author}"/>
2020
<StackPanel Grid.Column="1" Margin="16,0,8,0" Orientation="Vertical">
2121
<TextBlock Classes="group_header_label" Text="{DynamicResource Text.CommitDetail.Info.Author}"/>
22-
<Grid Margin="0,10,0,8" ColumnDefinitions="Auto,*" ClipToBounds="True">
23-
<v:EnhancedSelectableTextBlock Grid.Column="0" Text="{Binding Author.Name}" Margin="2,0,8,0"/>
24-
<v:EnhancedSelectableTextBlock Grid.Column="1" Text="{Binding Author.Email}" ToolTip.Tip="{Binding Author.Email}" Foreground="{DynamicResource Brush.FG2}" TextTrimming="CharacterEllipsis"/>
25-
</Grid>
26-
<v:EnhancedSelectableTextBlock Text="{Binding AuthorTimeStr}"
27-
Margin="2,0,0,0"
28-
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize, Converter={x:Static c:DoubleConverters.Decrease}}"
29-
Foreground="{DynamicResource Brush.FG2}"/>
22+
<Border Margin="0,10,0,8" Background="Transparent" ToolTip.Tip="{Binding Author}" Tag="{Binding Author}" ContextRequested="OnUserContextRequested">
23+
<TextBlock TextTrimming="CharacterEllipsis">
24+
<Run Text="{Binding Author.Name, Mode=OneWay}"/>
25+
<Run Text="{Binding Author.Email, Mode=OneWay}" Foreground="{DynamicResource Brush.FG2}"/>
26+
</TextBlock>
27+
</Border>
28+
<TextBlock Text="{Binding AuthorTimeStr}"
29+
Margin="2,0,0,0"
30+
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize, Converter={x:Static c:DoubleConverters.Decrease}}"
31+
Foreground="{DynamicResource Brush.FG2}"/>
3032
</StackPanel>
3133
</Grid>
3234

@@ -35,14 +37,16 @@
3537
<v:Avatar Grid.Column="0" Width="64" Height="64" HorizontalAlignment="Right" User="{Binding Committer}"/>
3638
<StackPanel Grid.Column="1" Margin="16,0,8,0" Orientation="Vertical">
3739
<TextBlock Classes="group_header_label" Text="{DynamicResource Text.CommitDetail.Info.Committer}"/>
38-
<Grid Margin="0,10,0,8" ColumnDefinitions="Auto,*" ClipToBounds="True">
39-
<v:EnhancedSelectableTextBlock Grid.Column="0" Text="{Binding Committer.Name}" Margin="2,0,8,0"/>
40-
<v:EnhancedSelectableTextBlock Grid.Column="1" Text="{Binding Committer.Email}" ToolTip.Tip="{Binding Committer.Email}" Foreground="{DynamicResource Brush.FG2}" TextTrimming="CharacterEllipsis"/>
41-
</Grid>
42-
<v:EnhancedSelectableTextBlock Text="{Binding CommitterTimeStr}"
43-
Margin="2,0,0,0"
44-
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize, Converter={x:Static c:DoubleConverters.Decrease}}"
45-
Foreground="{DynamicResource Brush.FG2}"/>
40+
<Border Margin="0,10,0,8" Background="Transparent" ToolTip.Tip="{Binding Committer}" Tag="{Binding Committer}" ContextRequested="OnUserContextRequested">
41+
<TextBlock TextTrimming="CharacterEllipsis">
42+
<Run Text="{Binding Committer.Name, Mode=OneWay}"/>
43+
<Run Text="{Binding Committer.Email, Mode=OneWay}" Foreground="{DynamicResource Brush.FG2}"/>
44+
</TextBlock>
45+
</Border>
46+
<TextBlock Text="{Binding CommitterTimeStr}"
47+
Margin="2,0,0,0"
48+
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize, Converter={x:Static c:DoubleConverters.Decrease}}"
49+
Foreground="{DynamicResource Brush.FG2}"/>
4650
</StackPanel>
4751
</Grid>
4852
</UniformGrid>

‎src/Views/CommitBaseInfo.axaml.cs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,45 @@ DataContext is ViewModels.CommitDetail detail &&
143143

144144
e.Handled = true;
145145
}
146+
147+
private void OnUserContextRequested(object sender, ContextRequestedEventArgs e)
148+
{
149+
if (sender is not Control { Tag: Models.User user } control)
150+
return;
151+
152+
var copyName = new MenuItem();
153+
copyName.Header = App.Text("CommitDetail.Info.CopyName");
154+
copyName.Icon = App.CreateMenuIcon("Icons.Copy");
155+
copyName.Click += async (_, ev) =>
156+
{
157+
await App.CopyTextAsync(user.Name);
158+
ev.Handled = true;
159+
};
160+
161+
var copyEmail = new MenuItem();
162+
copyEmail.Header = App.Text("CommitDetail.Info.CopyEmail");
163+
copyEmail.Icon = App.CreateMenuIcon("Icons.Email");
164+
copyEmail.Click += async (_, ev) =>
165+
{
166+
await App.CopyTextAsync(user.Email);
167+
ev.Handled = true;
168+
};
169+
170+
var copyUser = new MenuItem();
171+
copyUser.Header = App.Text("CommitDetail.Info.CopyNameAndEmail");
172+
copyUser.Icon = App.CreateMenuIcon("Icons.User");
173+
copyUser.Click += async (_, ev) =>
174+
{
175+
await App.CopyTextAsync(user.ToString());
176+
ev.Handled = true;
177+
};
178+
179+
var menu = new ContextMenu();
180+
menu.Items.Add(copyName);
181+
menu.Items.Add(copyEmail);
182+
menu.Items.Add(copyUser);
183+
menu.Open(control);
184+
e.Handled = true;
185+
}
146186
}
147187
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /