diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml index 4ff2e840..aeaa1633 100644 --- a/src/Resources/Locales/en_US.axaml +++ b/src/Resources/Locales/en_US.axaml @@ -114,6 +114,7 @@ User name for this repository Copy Copy Path + Copy File Name Create Branch Based On : Check out after created diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml index 33fb6e16..c65eda03 100644 --- a/src/Resources/Locales/zh_CN.axaml +++ b/src/Resources/Locales/zh_CN.axaml @@ -117,6 +117,7 @@ 应用于本仓库的用户名 复制 复制路径 + 复制文件名 新建分支 新分支基于 : 完成后切换到新分支 diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index b96c1fe1..1cb4a1fc 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -10,6 +10,7 @@ using Avalonia.Platform.Storage; using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; +using SourceGit.Models; namespace SourceGit.ViewModels { @@ -218,7 +219,17 @@ namespace SourceGit.ViewModels ev.Handled = true; }; menu.Items.Add(copyPath); - + var copyFileName = new MenuItem() + { + Header = App.Text("CopyFileName"), + Icon = App.CreateMenuIcon("Icon.Copy"), + }; + copyFileName.Click += (_, e) => + { + App.CopyText(Path.GetFileName(change.Path)); + e.Handled = true; + }; + menu.Items.Add(copyFileName); return menu; } @@ -284,12 +295,24 @@ namespace SourceGit.ViewModels ev.Handled = true; }; + var copyFileName = new MenuItem() + { + Header = App.Text("CopyFileName"), + Icon = App.CreateMenuIcon("Icon.Copy"), + }; + copyFileName.Click += (_, e) => + { + App.CopyText(Path.GetFileName(file.Path)); + e.Handled = true; + }; + var menu = new ContextMenu(); menu.Items.Add(history); menu.Items.Add(blame); menu.Items.Add(explore); menu.Items.Add(saveAs); menu.Items.Add(copyPath); + menu.Items.Add(copyFileName); return menu; } diff --git a/src/ViewModels/RevisionCompare.cs b/src/ViewModels/RevisionCompare.cs index 9026aa7f..0263f41b 100644 --- a/src/ViewModels/RevisionCompare.cs +++ b/src/ViewModels/RevisionCompare.cs @@ -183,6 +183,17 @@ namespace SourceGit.ViewModels }; menu.Items.Add(copyPath); + var copyFileName = new MenuItem() + { + Header = App.Text("CopyFileName"), + Icon = App.CreateMenuIcon("Icon.Copy"), + }; + copyFileName.Click += (_, e) => + { + App.CopyText(Path.GetFileName(change.Path)); + e.Handled = true; + }; + menu.Items.Add(copyFileName); return menu; } diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs index 2c4f1c3a..4c7a92b6 100644 --- a/src/ViewModels/WorkingCopy.cs +++ b/src/ViewModels/WorkingCopy.cs @@ -209,7 +209,7 @@ namespace SourceGit.ViewModels _unstaged.Clear(); OnPropertyChanged(nameof(Unstaged)); } - + if (_staged != null) { _staged.Clear(); @@ -584,6 +584,17 @@ namespace SourceGit.ViewModels e.Handled = true; }; menu.Items.Add(copy); + var copyFileName = new MenuItem() + { + Header = App.Text("CopyFileName"), + Icon = App.CreateMenuIcon("Icon.Copy"), + }; + copyFileName.Click += (_, e) => + { + App.CopyText(Path.GetFileName(change.Path)); + e.Handled = true; + }; + menu.Items.Add(copyFileName); } else {