From 7a8aca195e5a9f8dbbed1473a395d4e1c3f24c1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Garc=C3=ADa=20Ruiz?= Date: Tue, 14 Feb 2023 21:03:25 +0100 Subject: [PATCH 1/2] Move open with to main menu when right clicking recent files --- src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs index 5b1613765d68..ca8f9d503129 100644 --- a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs +++ b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs @@ -122,7 +122,7 @@ private void Grid_RightTapped(object sender, RightTappedRoutedEventArgs e) secondaryElements.ForEach(i => itemContextMenuFlyout.SecondaryCommands.Add(i)); itemContextMenuFlyout.ShowAt(recentItemsGrid, new FlyoutShowOptions { Position = e.GetPosition(recentItemsGrid) }); - _ = ShellContextmenuHelper.LoadShellMenuItems(item.Path, itemContextMenuFlyout); + _ = ShellContextmenuHelper.LoadShellMenuItems(item.Path, itemContextMenuFlyout, showOpenWithMenu: true); e.Handled = true; } From 1446bf3e08ddb71fe95daf889c4db3780a9e63c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Garc=C3=ADa=20Ruiz?= Date: Thu, 16 Feb 2023 18:32:22 +0100 Subject: [PATCH 2/2] Add icon + color icon and placeholder --- src/Files.App/Helpers/ShellContextMenuHelper.cs | 8 ++++++++ .../UserControls/Widgets/RecentFilesWidget.xaml.cs | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/src/Files.App/Helpers/ShellContextMenuHelper.cs b/src/Files.App/Helpers/ShellContextMenuHelper.cs index 1ec0a4726593..201d73cf4af3 100644 --- a/src/Files.App/Helpers/ShellContextMenuHelper.cs +++ b/src/Files.App/Helpers/ShellContextMenuHelper.cs @@ -255,7 +255,15 @@ public static async Task LoadShellMenuItems(string path, CommandBarFlyout itemCo var openWithItem = shellMenuItems.Where(x => (x.Tag as Win32ContextMenuItem)?.CommandString == "openas").ToList().FirstOrDefault(); if (openWithItem is not null) { + openWithItem.ColoredIcon = new ColoredIconModel() + { + BaseLayerGlyph = "\uF049", + OverlayLayerGlyph = "\uF04A", + }; var (_, openWithItems) = ItemModelListToContextFlyoutHelper.GetAppBarItemsFromModel(new List() { openWithItem }); + var placeholder = itemContextMenuFlyout.SecondaryCommands.Where(x => Equals((x as AppBarButton)?.Tag, "OpenWithPlaceholder")).FirstOrDefault() as AppBarButton; + if (placeholder is not null) + placeholder.Visibility = Visibility.Collapsed; itemContextMenuFlyout.SecondaryCommands.Insert(0, openWithItems.FirstOrDefault()); shellMenuItems.Remove(openWithItem); } diff --git a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs index fe5a33df8b1b..55c45a4bf655 100644 --- a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs +++ b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs @@ -126,6 +126,13 @@ public override List GetItemMenuItems(WidgetCard { return new List() { + new ContextMenuFlyoutItemViewModel() + { + Text = "OpenItemsWithCaptionText".GetLocalizedResource(), + Glyph = "\uE17D", + Tag = "OpenWithPlaceholder", + IsEnabled = false + }, new ContextMenuFlyoutItemViewModel() { Text = "RecentItemRemove/Text".GetLocalizedResource(),