From f589b396f58babde4641de861a866e257f057c80 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 28 Feb 2021 11:38:42 -0800 Subject: [PATCH 1/3] Re-implement folder previews --- Files/ViewModels/PreviewPaneViewModel.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Files/ViewModels/PreviewPaneViewModel.cs b/Files/ViewModels/PreviewPaneViewModel.cs index 39462676ca44..51368e7123a6 100644 --- a/Files/ViewModels/PreviewPaneViewModel.cs +++ b/Files/ViewModels/PreviewPaneViewModel.cs @@ -95,11 +95,7 @@ private async Task LoadPreviewControlAsync() if (SelectedItem.PrimaryItemAttribute == StorageItemTypes.Folder) { - // TODO: Finish folder previews and reimplement later - //PreviewPaneContent = new FolderPreview(new FolderPreviewViewModel(SelectedItem)); - DetailsErrorText = "PreviewPaneDetailsNotAvailableText".GetLocalized(); - PreviewErrorText = "DetailsPanePreviewNotAvaliableText".GetLocalized(); - PreviewPaneContent = null; + PreviewPaneContent = new FolderPreview(new FolderPreviewViewModel(SelectedItem)); return; } @@ -124,7 +120,6 @@ private async Task LoadPreviewControlAsync() control = new BasicPreview(basicModel); PreviewPaneContent = control; } - private async Task GetBuiltInPreviewControlAsync(ListedItem item) { if(item.IsShortcutItem) From 14188f70580eba31bc8105f0e065b7e24039fb70 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Tue, 9 Mar 2021 14:15:04 -0800 Subject: [PATCH 2/3] Moved to built in thumbnail --- .../FilePreviews/FolderPreview.xaml | 18 ++++-------- .../FilePreviews/FolderPreview.xaml.cs | 22 +++++++++++---- .../Previews/FolderPreviewViewModel.cs | 28 ++++--------------- 3 files changed, 27 insertions(+), 41 deletions(-) diff --git a/Files/UserControls/FilePreviews/FolderPreview.xaml b/Files/UserControls/FilePreviews/FolderPreview.xaml index d8e1ae00dee0..b948b0833cd4 100644 --- a/Files/UserControls/FilePreviews/FolderPreview.xaml +++ b/Files/UserControls/FilePreviews/FolderPreview.xaml @@ -2,22 +2,14 @@ x:Class="Files.UserControls.FilePreviews.FolderPreview" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="using:Files.UserControls.FilePreviews" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:muxc="using:Microsoft.UI.Xaml.Controls" - xmlns:previews="using:Files.ViewModels.Previews" + mc:Ignorable="d" d:DesignHeight="300" - d:DesignWidth="400" - mc:Ignorable="d"> + d:DesignWidth="400"> - - - - - - - + - \ No newline at end of file + diff --git a/Files/UserControls/FilePreviews/FolderPreview.xaml.cs b/Files/UserControls/FilePreviews/FolderPreview.xaml.cs index 64bcb59faf29..efcef4745106 100644 --- a/Files/UserControls/FilePreviews/FolderPreview.xaml.cs +++ b/Files/UserControls/FilePreviews/FolderPreview.xaml.cs @@ -1,5 +1,18 @@ using Files.ViewModels.Previews; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; // The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236 @@ -7,12 +20,11 @@ namespace Files.UserControls.FilePreviews { public sealed partial class FolderPreview : UserControl { - public FolderPreviewViewModel ViewModel { get; set; } - - public FolderPreview(FolderPreviewViewModel viewModel) + public FolderPreviewViewModel Model { get; set; } + public FolderPreview(FolderPreviewViewModel model) { - ViewModel = viewModel; + Model = model; this.InitializeComponent(); } } -} \ No newline at end of file +} diff --git a/Files/ViewModels/Previews/FolderPreviewViewModel.cs b/Files/ViewModels/Previews/FolderPreviewViewModel.cs index 5408f30ccbe6..ff9612bac081 100644 --- a/Files/ViewModels/Previews/FolderPreviewViewModel.cs +++ b/Files/ViewModels/Previews/FolderPreviewViewModel.cs @@ -1,8 +1,10 @@ using Files.Filesystem; +using Files.Helpers; using Files.ViewModels.Properties; using System; using System.Collections.ObjectModel; using System.Linq; +using System.Threading.Tasks; using Windows.Storage; using Windows.Storage.FileProperties; using Windows.UI.Xaml.Media.Imaging; @@ -15,7 +17,7 @@ public class FolderPreviewViewModel public ListedItem Item { get; set; } - public ObservableCollection Contents { get; set; } = new ObservableCollection(); + public BitmapImage Thumbnail { get; set; } = new BitmapImage(); public FolderPreviewViewModel(ListedItem item) { @@ -28,23 +30,8 @@ private async void LoadPreviewAndDetailsAsync() Folder = await StorageFolder.GetFolderFromPathAsync(Item.ItemPath); var items = await Folder.GetItemsAsync(); - foreach (var item in items.Take(Constants.PreviewPane.FolderPreviewThumbnailCount)) - { - if (item is StorageFile) - { - var icon = await (item as StorageFile).GetThumbnailAsync(ThumbnailMode.SingleItem, 80, ThumbnailOptions.UseCurrentScale); - var imageSource = new BitmapImage(); - if (icon != null) - { - await imageSource.SetSourceAsync(icon); - } - - Contents.Add(new FolderContent - { - Image = imageSource - }); - } - } + using var icon = await Folder.GetThumbnailAsync(ThumbnailMode.SingleItem, 400); + await Thumbnail.SetSourceAsync(icon); var info = await Folder.GetBasicPropertiesAsync(); Item.FileDetails = new ObservableCollection() @@ -67,9 +54,4 @@ private async void LoadPreviewAndDetailsAsync() }; } } - - public struct FolderContent - { - public BitmapImage Image; - } } \ No newline at end of file From 094997d2bed84ea1d58bc2d26746f318d3050cf3 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Tue, 9 Mar 2021 14:19:28 -0800 Subject: [PATCH 3/3] Changes to localized strings --- Files/Strings/en-US/Resources.resw | 3 +++ .../Previews/FolderPreviewViewModel.cs | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Files/Strings/en-US/Resources.resw b/Files/Strings/en-US/Resources.resw index d7bddf637777..c2c9bfbb7d3c 100644 --- a/Files/Strings/en-US/Resources.resw +++ b/Files/Strings/en-US/Resources.resw @@ -1899,4 +1899,7 @@ Color scheme + + Item count + \ No newline at end of file diff --git a/Files/ViewModels/Previews/FolderPreviewViewModel.cs b/Files/ViewModels/Previews/FolderPreviewViewModel.cs index ff9612bac081..e80f1b17891f 100644 --- a/Files/ViewModels/Previews/FolderPreviewViewModel.cs +++ b/Files/ViewModels/Previews/FolderPreviewViewModel.cs @@ -38,18 +38,28 @@ private async void LoadPreviewAndDetailsAsync() { new FileProperty() { - LocalizedName = "Item count", + NameResource = "PropertyItemCount", Value = items.Count, }, new FileProperty() { - LocalizedName = "Date Modified", + NameResource = "PropertyDateModified", Value = info.DateModified, }, new FileProperty() { - LocalizedName = "Date Created", + NameResource = "PropertyDateCreated", Value = info.ItemDate, + }, + new FileProperty() + { + NameResource = "PropertyItemName", + Value = Folder.Name, + }, + new FileProperty() + { + NameResource = "PropertyItemPathDisplay", + Value = Folder.Path, } }; }