Skip to content

Commit 0491b1f

Browse files
committed
feat: added right click entry and shortcut
1 parent 4e541c0 commit 0491b1f

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/Resources/Locales/en_US.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,7 @@
553553
<x:String x:Key="Text.OpenAppDataDir" xml:space="preserve">Open Data Storage Directory</x:String>
554554
<x:String x:Key="Text.OpenFile" xml:space="preserve">Open File</x:String>
555555
<x:String x:Key="Text.OpenInExternalMergeTool" xml:space="preserve">Open in Merge Tool</x:String>
556+
<x:String x:Key="Text.OpenInBuiltinMergeTool" xml:space="preserve">Open in Built-in Merge Tool</x:String>
556557
<x:String x:Key="Text.Optional" xml:space="preserve">Optional.</x:String>
557558
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Create New Tab</x:String>
558559
<x:String x:Key="Text.PageTabBar.Tab.Bookmark" xml:space="preserve">Bookmark</x:String>

src/Views/WorkingCopy.axaml.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,29 @@ private ContextMenu CreateContextMenuForUnstagedChanges(ViewModels.WorkingCopy v
264264

265265
if (!change.IsConflicted || change.ConflictReason is Models.ConflictReason.BothAdded or Models.ConflictReason.BothModified)
266266
{
267+
if (change.IsConflicted)
268+
{
269+
var isBinary = new Commands.IsBinary(repo.FullPath, "HEAD", change.Path).GetResultAsync().GetAwaiter().GetResult();
270+
if (!isBinary)
271+
{
272+
var openBuiltinMerger = new MenuItem();
273+
openBuiltinMerger.Header = App.Text("OpenInBuiltinMergeTool");
274+
openBuiltinMerger.Icon = App.CreateMenuIcon("Icons.Conflict");
275+
openBuiltinMerger.Tag = OperatingSystem.IsMacOS() ? "⌘+⇧+M" : "Ctrl+Shift+M";
276+
openBuiltinMerger.Click += async (_, e) =>
277+
{
278+
var mergeVm = new ViewModels.MergeConflictEditor(repo, change.Path);
279+
await mergeVm.LoadAsync();
280+
281+
var window = TopLevel.GetTopLevel(this) as Window;
282+
var mergeWindow = new MergeConflictEditor { DataContext = mergeVm };
283+
await mergeWindow.ShowDialog(window);
284+
285+
e.Handled = true;
286+
};
287+
menu.Items.Add(openBuiltinMerger);
288+
}
289+
}
267290
var openMerger = new MenuItem();
268291
openMerger.Header = App.Text("OpenInExternalMergeTool");
269292
openMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
@@ -278,6 +301,7 @@ private ContextMenu CreateContextMenuForUnstagedChanges(ViewModels.WorkingCopy v
278301
e.Handled = true;
279302
};
280303
menu.Items.Add(openMerger);
304+
281305
}
282306

283307
var explore = new MenuItem();

0 commit comments

Comments
 (0)