Skip to content

Commit b224b0d

Browse files
committed
feature: add Merge <tag> to <current context menu for selected tag
Signed-off-by: leo <longshuang@msn.cn>
1 parent 5c4cb57 commit b224b0d

4 files changed

Lines changed: 24 additions & 9 deletions

File tree

‎src/Resources/Locales/en_US.axaml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -947,6 +947,7 @@
947947
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">Custom Action</x:String>
948948
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
949949
<x:String x:Key="Text.TagCM.DeleteMultiple" xml:space="preserve">Delete selected {0} tags...</x:String>
950+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ into ${1}$...</x:String>
950951
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
951952
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Update Submodules</x:String>
952953
<x:String x:Key="Text.UpdateSubmodules.All" xml:space="preserve">All submodules</x:String>

‎src/Resources/Locales/zh_CN.axaml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,7 @@
951951
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">自定义操作</x:String>
952952
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">删除 ${0}$...</x:String>
953953
<x:String x:Key="Text.TagCM.DeleteMultiple" xml:space="preserve">删除选中 {0} 个标签...</x:String>
954+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合并 ${0}$ 到 ${1}$...</x:String>
954955
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
955956
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模块</x:String>
956957
<x:String x:Key="Text.UpdateSubmodules.All" xml:space="preserve">更新所有子模块</x:String>

‎src/Resources/Locales/zh_TW.axaml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,7 @@
951951
<x:String x:Key="Text.TagCM.CustomAction" xml:space="preserve">自訂動作</x:String>
952952
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">刪除 ${0}$...</x:String>
953953
<x:String x:Key="Text.TagCM.DeleteMultiple" xml:space="preserve">刪除所選的 {0} 個標籤...</x:String>
954+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合併 ${0}$ 到 ${1}$...</x:String>
954955
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
955956
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模組</x:String>
956957
<x:String x:Key="Text.UpdateSubmodules.All" xml:space="preserve">更新所有子模組</x:String>

‎src/Views/TagsView.axaml.cs‎

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,6 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
262262
menu.Items.Add(checkoutCommit);
263263
}
264264

265-
menu.Items.Add(new MenuItem() { Header = "-" });
266-
267265
var pushTag = new MenuItem();
268266
pushTag.Header = App.Text("TagCM.Push", tag.Name);
269267
pushTag.Icon = this.CreateMenuIcon("Icons.Push");
@@ -274,6 +272,22 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
274272
repo.ShowPopup(new ViewModels.PushTag(repo, tag));
275273
ev.Handled = true;
276274
};
275+
menu.Items.Add(new MenuItem() { Header = "-" });
276+
menu.Items.Add(pushTag);
277+
278+
if (repo.CurrentBranch is { IsDetachedHead: false } current)
279+
{
280+
var mergeTag = new MenuItem();
281+
mergeTag.Header = App.Text("TagCM.Merge", tag.Name, current.Name);
282+
mergeTag.Icon = this.CreateMenuIcon("Icons.Merge");
283+
mergeTag.Click += (_, ev) =>
284+
{
285+
if (repo.CanCreatePopup())
286+
repo.ShowPopup(new ViewModels.Merge(repo, tag, current.Name));
287+
ev.Handled = true;
288+
};
289+
menu.Items.Add(mergeTag);
290+
}
277291

278292
var deleteTag = new MenuItem();
279293
deleteTag.Header = App.Text("TagCM.Delete", tag.Name);
@@ -284,6 +298,8 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
284298
repo.ShowPopup(new ViewModels.DeleteTag(repo, tag));
285299
ev.Handled = true;
286300
};
301+
menu.Items.Add(deleteTag);
302+
menu.Items.Add(new MenuItem() { Header = "-" });
287303

288304
var compareWithHead = new MenuItem();
289305
compareWithHead.Header = App.Text("TagCM.CompareWithHead");
@@ -300,6 +316,9 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
300316
{
301317
new ViewModels.CompareCommandPalette(repo, tag).Open();
302318
};
319+
menu.Items.Add(compareWithHead);
320+
menu.Items.Add(compareWith);
321+
menu.Items.Add(new MenuItem() { Header = "-" });
303322

304323
var archive = new MenuItem();
305324
archive.Icon = this.CreateMenuIcon("Icons.Archive");
@@ -310,13 +329,6 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
310329
repo.ShowPopup(new ViewModels.Archive(repo, tag));
311330
ev.Handled = true;
312331
};
313-
314-
menu.Items.Add(pushTag);
315-
menu.Items.Add(deleteTag);
316-
menu.Items.Add(new MenuItem() { Header = "-" });
317-
menu.Items.Add(compareWithHead);
318-
menu.Items.Add(compareWith);
319-
menu.Items.Add(new MenuItem() { Header = "-" });
320332
menu.Items.Add(archive);
321333
menu.Items.Add(new MenuItem() { Header = "-" });
322334

0 commit comments

Comments
 (0)