From 4f4b90d424be964b028b947f92f849b42e11a933 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 7 Jul 2025 15:09:05 +0800 Subject: [PATCH] ux: re-order context menu items Signed-off-by: leo --- src/ViewModels/CommitDetail.cs | 22 ++++++++-------- src/ViewModels/WorkingCopy.cs | 48 ++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index 7bdefe6b..d2c00a6d 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -509,16 +509,6 @@ namespace SourceGit.ViewModels var menu = new ContextMenu(); var fullPath = Native.OS.GetAbsPath(_repo.FullPath, file.Path); - var explore = new MenuItem(); - explore.Header = App.Text("RevealFile"); - explore.Icon = App.CreateMenuIcon("Icons.Explore"); - explore.IsEnabled = File.Exists(fullPath); - explore.Click += (_, ev) => - { - Native.OS.OpenInFileManager(fullPath, file.Type == Models.ObjectType.Blob); - ev.Handled = true; - }; - var openWith = new MenuItem(); openWith.Header = App.Text("OpenWith"); openWith.Icon = App.CreateMenuIcon("Icons.OpenWith"); @@ -562,9 +552,19 @@ namespace SourceGit.ViewModels ev.Handled = true; }; - menu.Items.Add(explore); + var explore = new MenuItem(); + explore.Header = App.Text("RevealFile"); + explore.Icon = App.CreateMenuIcon("Icons.Explore"); + explore.IsEnabled = File.Exists(fullPath); + explore.Click += (_, ev) => + { + Native.OS.OpenInFileManager(fullPath, file.Type == Models.ObjectType.Blob); + ev.Handled = true; + }; + menu.Items.Add(openWith); menu.Items.Add(saveAs); + menu.Items.Add(explore); menu.Items.Add(new MenuItem() { Header = "-" }); var history = new MenuItem(); diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs index 01c3549e..6ee41534 100644 --- a/src/ViewModels/WorkingCopy.cs +++ b/src/ViewModels/WorkingCopy.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; @@ -593,6 +593,7 @@ namespace SourceGit.ViewModels var diffWithMerger = new MenuItem(); diffWithMerger.Header = App.Text("DiffWithMerger"); diffWithMerger.Icon = App.CreateMenuIcon("Icons.OpenWith"); + diffWithMerger.Tag = OperatingSystem.IsMacOS() ? "⌘+⇧+D" : "Ctrl+Shift+D"; diffWithMerger.Click += (sender, ev) => { var toolType = Preferences.Instance.ExternalMergeToolType; @@ -604,6 +605,17 @@ namespace SourceGit.ViewModels }; menu.Items.Add(diffWithMerger); + var openWith = new MenuItem(); + openWith.Header = App.Text("OpenWith"); + openWith.Icon = App.CreateMenuIcon("Icons.OpenWith"); + openWith.IsEnabled = File.Exists(path); + openWith.Click += (_, e) => + { + Native.OS.OpenWithDefaultEditor(path); + e.Handled = true; + }; + menu.Items.Add(openWith); + var explore = new MenuItem(); explore.Header = App.Text("RevealFile"); explore.Icon = App.CreateMenuIcon("Icons.Explore"); @@ -615,17 +627,6 @@ namespace SourceGit.ViewModels e.Handled = true; }; menu.Items.Add(explore); - - var openWith = new MenuItem(); - openWith.Header = App.Text("OpenWith"); - openWith.Icon = App.CreateMenuIcon("Icons.OpenWith"); - openWith.IsEnabled = File.Exists(path); - openWith.Click += (_, e) => - { - Native.OS.OpenWithDefaultEditor(path); - e.Handled = true; - }; - menu.Items.Add(openWith); menu.Items.Add(new MenuItem() { Header = "-" }); if (change.IsConflicted) @@ -1260,6 +1261,7 @@ namespace SourceGit.ViewModels var diffWithMerger = new MenuItem(); diffWithMerger.Header = App.Text("DiffWithMerger"); diffWithMerger.Icon = App.CreateMenuIcon("Icons.OpenWith"); + diffWithMerger.Tag = OperatingSystem.IsMacOS() ? "⌘+⇧+D" : "Ctrl+Shift+D"; diffWithMerger.Click += (sender, ev) => { var toolType = Preferences.Instance.ExternalMergeToolType; @@ -1270,6 +1272,16 @@ namespace SourceGit.ViewModels ev.Handled = true; }; + var openWith = new MenuItem(); + openWith.Header = App.Text("OpenWith"); + openWith.Icon = App.CreateMenuIcon("Icons.OpenWith"); + openWith.IsEnabled = File.Exists(path); + openWith.Click += (_, e) => + { + Native.OS.OpenWithDefaultEditor(path); + e.Handled = true; + }; + var explore = new MenuItem(); explore.IsEnabled = File.Exists(path) || Directory.Exists(path); explore.Header = App.Text("RevealFile"); @@ -1281,16 +1293,6 @@ namespace SourceGit.ViewModels e.Handled = true; }; - var openWith = new MenuItem(); - openWith.Header = App.Text("OpenWith"); - openWith.Icon = App.CreateMenuIcon("Icons.OpenWith"); - openWith.IsEnabled = File.Exists(path); - openWith.Click += (_, e) => - { - Native.OS.OpenWithDefaultEditor(path); - e.Handled = true; - }; - var unstage = new MenuItem(); unstage.Header = App.Text("FileCM.Unstage"); unstage.Icon = App.CreateMenuIcon("Icons.File.Remove"); @@ -1338,8 +1340,8 @@ namespace SourceGit.ViewModels }; menu.Items.Add(diffWithMerger); - menu.Items.Add(explore); menu.Items.Add(openWith); + menu.Items.Add(explore); menu.Items.Add(new MenuItem() { Header = "-" }); menu.Items.Add(unstage); menu.Items.Add(stash);