From 5b02693047ca2dd270ea0d979539dce665b3e480 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 4 Sep 2025 11:48:39 +0800 Subject: [PATCH] ux: add menu icons Signed-off-by: leo --- src/Resources/Icons.axaml | 1 + src/Views/Histories.axaml.cs | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Resources/Icons.axaml b/src/Resources/Icons.axaml index 4aa56bb8..4c54dce6 100644 --- a/src/Resources/Icons.axaml +++ b/src/Resources/Icons.axaml @@ -48,6 +48,7 @@ M416 832H128V128h384v192C512 355 541 384 576 384L768 384v32c0 19 13 32 32 32S832 435 832 416v-64c0-6 0-19-6-25l-256-256c-6-6-19-6-25-6H128A64 64 0 0064 128v704C64 867 93 896 129 896h288c19 0 32-13 32-32S435 832 416 832zM576 172 722 320H576V172zM736 512C614 512 512 614 512 736S614 960 736 960s224-102 224-224S858 512 736 512zM576 736C576 646 646 576 736 576c32 0 58 6 83 26l-218 218c-19-26-26-51-26-83zm160 160c-32 0-64-13-96-32l224-224c19 26 32 58 32 96 0 90-70 160-160 160z M896 320c0-19-6-32-19-45l-192-192c-13-13-26-19-45-19H192c-38 0-64 26-64 64v768c0 38 26 64 64 64h640c38 0 64-26 64-64V320zm-256 384H384c-19 0-32-13-32-32s13-32 32-32h256c19 0 32 13 32 32s-13 32-32 32zm166-384H640V128l192 192h-26z M599 425 599 657 425 832 425 425 192 192 832 192Z + M320 239 213 299l60-107L213 85l107 60L427 85 367 192 427 299 320 239m512 418L939 597l-60 107L939 811l-107-60L725 811l60-107L725 597l107 60M939 85l-60 107L939 299l-107-60L725 299l60-107L725 85l107 60L939 85m-369 460 104-104-90-90-104 104 90 90m44-234 100 100c17 16 17 44 0 60L215 969c-17 17-44 17-60 0l-100-100c-17-16-17-44 0-60L553 311c17-17 44-17 60 0z M853 267H514c-4 0-6-2-9-4l-38-66c-13-21-38-36-64-36H171c-41 0-75 34-75 75v555c0 41 34 75 75 75h683c41 0 75-34 75-75V341c0-41-34-75-75-75zm-683-43h233c4 0 6 2 9 4l38 66c13 21 38 36 64 36H853c6 0 11 4 11 11v75h-704V235c0-6 4-11 11-11zm683 576H171c-6 0-11-4-11-11V480h704V789c0 6-4 11-11 11z M1088 227H609L453 78a11 11 0 00-7-3H107a43 43 0 00-43 43v789a43 43 0 0043 43h981a43 43 0 0043-43V270a43 43 0 00-43-43zM757 599c0 5-5 9-10 9h-113v113c0 5-4 9-9 9h-56c-5 0-9-4-9-9V608h-113c-5 0-10-4-10-9V543c0-5 5-9 10-9h113V420c0-5 4-9 9-9h56c5 0 9 4 9 9V533h113c5 0 10 4 10 9v56z M922 450c-6-9-15-13-26-13h-11V341c0-41-34-75-75-75H514c-4 0-6-2-9-4l-38-66c-13-21-38-36-64-36H171c-41 0-75 34-75 75v597c0 6 2 13 6 19 6 9 15 13 26 13h640c13 0 26-9 30-21l128-363c4-11 2-21-4-30zM171 224h233c4 0 6 2 9 4l38 66c13 21 38 36 64 36H811c6 0 11 4 11 11v96H256c-13 0-26 9-30 21l-66 186V235c0-6 4-11 11-11zm574 576H173l105-299h572l-105 299z diff --git a/src/Views/Histories.axaml.cs b/src/Views/Histories.axaml.cs index b8e5a097..6c24ac16 100644 --- a/src/Views/Histories.axaml.cs +++ b/src/Views/Histories.axaml.cs @@ -627,12 +627,9 @@ namespace SourceGit.Views if (commit.IsMerged && commit.Parents.Count > 0) { - var interactiveRebase = new MenuItem(); - interactiveRebase.Header = App.Text("CommitCM.InteractiveRebase"); - interactiveRebase.Icon = App.CreateMenuIcon("Icons.InteractiveRebase"); - var manually = new MenuItem(); manually.Header = App.Text("CommitCM.InteractiveRebase.Manually", current.Name, target); + manually.Icon = App.CreateMenuIcon("Icons.InteractiveRebase"); manually.Click += async (_, e) => { await App.ShowDialog(new ViewModels.InteractiveRebase(repo, commit)); @@ -641,6 +638,7 @@ namespace SourceGit.Views var reword = new MenuItem(); reword.Header = App.Text("CommitCM.InteractiveRebase.Reword"); + reword.Icon = App.CreateMenuIcon("Icons.Rename"); reword.Click += async (_, e) => { await vm.InteractiveRebaseAsync(commit, Models.InteractiveRebaseAction.Reword); @@ -649,6 +647,7 @@ namespace SourceGit.Views var edit = new MenuItem(); edit.Header = App.Text("CommitCM.InteractiveRebase.Edit"); + edit.Icon = App.CreateMenuIcon("Icons.Edit"); edit.Click += async (_, e) => { await vm.InteractiveRebaseAsync(commit, Models.InteractiveRebaseAction.Edit); @@ -657,6 +656,7 @@ namespace SourceGit.Views var squash = new MenuItem(); squash.Header = App.Text("CommitCM.InteractiveRebase.Squash"); + squash.Icon = App.CreateMenuIcon("Icons.SquashIntoParent"); squash.Click += async (_, e) => { await vm.InteractiveRebaseAsync(commit, Models.InteractiveRebaseAction.Squash); @@ -665,6 +665,7 @@ namespace SourceGit.Views var fixup = new MenuItem(); fixup.Header = App.Text("CommitCM.InteractiveRebase.Fixup"); + fixup.Icon = App.CreateMenuIcon("Icons.Fix"); fixup.Click += async (_, e) => { await vm.InteractiveRebaseAsync(commit, Models.InteractiveRebaseAction.Fixup); @@ -673,12 +674,16 @@ namespace SourceGit.Views var drop = new MenuItem(); drop.Header = App.Text("CommitCM.InteractiveRebase.Drop"); + drop.Icon = App.CreateMenuIcon("Icons.Clear"); drop.Click += async (_, e) => { await vm.InteractiveRebaseAsync(commit, Models.InteractiveRebaseAction.Drop); e.Handled = true; }; + var interactiveRebase = new MenuItem(); + interactiveRebase.Header = App.Text("CommitCM.InteractiveRebase"); + interactiveRebase.Icon = App.CreateMenuIcon("Icons.InteractiveRebase"); interactiveRebase.Items.Add(manually); interactiveRebase.Items.Add(new MenuItem() { Header = "-" }); interactiveRebase.Items.Add(reword);