Skip to content

Commit 94e40ff

Browse files
authored
Feature: Added access keys to the right click context menu (#17196)
1 parent 0d24cbc commit 94e40ff

File tree

4 files changed

+15
-1
lines changed

4 files changed

+15
-1
lines changed

src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,14 +457,17 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
457457
new ContextMenuFlyoutItemViewModelBuilder(Commands.CutItem)
458458
{
459459
IsPrimary = true,
460+
AccessKey="X"
460461
}.Build(),
461462
new ContextMenuFlyoutItemViewModelBuilder(Commands.CopyItem)
462463
{
463464
IsPrimary = true,
465+
AccessKey="C"
464466
}.Build(),
465467
new ContextMenuFlyoutItemViewModelBuilder(Commands.PasteItemToSelection)
466468
{
467469
IsPrimary = true,
470+
AccessKey="V",
468471
IsVisible = true,
469472
}.Build(),
470473
new ContextMenuFlyoutItemViewModelBuilder(Commands.PasteItemAsShortcut).Build(),
@@ -493,11 +496,13 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
493496
new ContextMenuFlyoutItemViewModelBuilder(Commands.Rename)
494497
{
495498
IsPrimary = true,
499+
AccessKey="M",
496500
IsVisible = itemsSelected
497501
}.Build(),
498502
new ContextMenuFlyoutItemViewModelBuilder(Commands.ShareItem)
499503
{
500-
IsPrimary = true
504+
IsPrimary = true,
505+
AccessKey = "H"
501506
}.Build(),
502507
new ContextMenuFlyoutItemViewModelBuilder(ModifiableCommands.DeleteItem)
503508
{
@@ -507,6 +512,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
507512
new ContextMenuFlyoutItemViewModelBuilder(ModifiableCommands.OpenProperties)
508513
{
509514
IsPrimary = true,
515+
AccessKey="O",
510516
IsVisible = ModifiableCommands.OpenProperties.IsExecutable
511517
}.Build(),
512518
new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenParentFolder).Build(),

src/Files.App/Data/Models/ContextMenuFlyoutItemViewModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,7 @@ public sealed class ContextMenuFlyoutItemViewModel
6262
public bool ShowLoadingIndicator { get; set; }
6363

6464
public bool IsHidden { get; set; }
65+
66+
public string AccessKey { get; set; }
6567
}
6668
}

src/Files.App/Data/Models/ContextMenuFlyoutItemViewModelBuilder.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ public bool IsVisible
2323
}
2424

2525
public bool IsPrimary { get; init; } = false;
26+
2627
public bool IsToggle { get; init; } = false;
2728

29+
public string AccessKey { get; init; }
30+
2831
public object Tag { get; init; }
2932

3033
public bool ShowOnShift { get; init; } = false;
@@ -64,6 +67,7 @@ public ContextMenuFlyoutItemViewModel Build()
6467
ShowInSearchPage = true,
6568
ShowInFtpPage = true,
6669
ShowInZipPage = true,
70+
AccessKey = AccessKey,
6771
};
6872

6973
var glyph = command.Glyph;

src/Files.App/Helpers/MenuFlyout/ContextFlyoutModelToElementHelper.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ private static ICommandBarElement GetCommandBarButton(ContextMenuFlyoutItemViewM
251251
LabelPosition = item.IsPrimary || item.CollapseLabel ? CommandBarLabelPosition.Collapsed : CommandBarLabelPosition.Default,
252252
IsEnabled = item.IsEnabled,
253253
Visibility = item.IsHidden ? Visibility.Collapsed : Visibility.Visible,
254+
AccessKey = item.AccessKey,
254255
};
255256

256257
if (element is AppBarToggleButton toggleButton)
@@ -281,6 +282,7 @@ private static ICommandBarElement GetCommandBarButton(ContextMenuFlyoutItemViewM
281282
Content = content,
282283
IsEnabled = item.IsEnabled,
283284
Visibility = item.IsHidden ? Visibility.Collapsed : Visibility.Visible,
285+
AccessKey = item.AccessKey,
284286
};
285287

286288
if (element is AppBarButton button)

0 commit comments

Comments
 (0)