Skip to content

Commit 5fcd216

Browse files
authored
Feature: Added support for filtering current directory when typing into search box (#15119)
1 parent 92c5a10 commit 5fcd216

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,8 @@ public void UpdateEmptyTextType()
663663
EmptyTextType = FilesAndFolders.Count == 0 ? (IsSearchResults ? EmptyTextType.NoSearchResultsFound : EmptyTextType.FolderEmpty) : EmptyTextType.None;
664664
}
665665

666+
public string? FilesAndFoldersFilter { get; set; }
667+
666668
// Apply changes immediately after manipulating on filesAndFolders completed
667669
public async Task ApplyFilesAndFoldersChangesAsync()
668670
{
@@ -706,7 +708,10 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() =>
706708
return;
707709

708710
FilesAndFolders.Clear();
709-
FilesAndFolders.AddRange(filesAndFoldersLocal);
711+
if (string.IsNullOrEmpty(FilesAndFoldersFilter))
712+
FilesAndFolders.AddRange(filesAndFoldersLocal);
713+
else
714+
FilesAndFolders.AddRange(filesAndFoldersLocal.Where(x => x.Name.Contains(FilesAndFoldersFilter, StringComparison.OrdinalIgnoreCase)));
710715

711716
if (folderSettings.DirectoryGroupOption != GroupOption.None)
712717
OrderGroups();

src/Files.App/ViewModels/UserControls/AddressToolbarViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,11 +581,12 @@ private void CloseSearchBox(bool doFocus = false)
581581
}
582582
else
583583
{
584-
SearchBox.Query = string.Empty;
585584
IsSearchBoxVisible = false;
586585

587586
if (doFocus)
588587
{
588+
SearchBox.Query = string.Empty;
589+
589590
var page = Ioc.Default.GetRequiredService<IContentPageContext>().ShellPage?.SlimContentPage;
590591

591592
if (page is BaseGroupableLayoutPage svb && svb.IsLoaded)

src/Files.App/Views/Shells/BaseShellPage.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,9 @@ protected async void ShellPage_QuerySubmitted(ISearchBoxViewModel sender, Search
363363

364364
protected async void ShellPage_TextChanged(ISearchBoxViewModel sender, SearchBoxTextChangedEventArgs e)
365365
{
366+
FilesystemViewModel.FilesAndFoldersFilter = sender.Query;
367+
await FilesystemViewModel.ApplyFilesAndFoldersChangesAsync();
368+
366369
if (e.Reason != SearchBoxTextChangeReason.UserInput)
367370
return;
368371

src/Files.App/Views/Shells/ModernShellPage.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,8 @@ public override void NavigateHome()
300300

301301
public override void NavigateToPath(string? navigationPath, Type? sourcePageType, NavigationArguments? navArgs = null)
302302
{
303+
FilesystemViewModel.FilesAndFoldersFilter = null;
304+
303305
if (sourcePageType is null && !string.IsNullOrEmpty(navigationPath))
304306
sourcePageType = InstanceViewModel.FolderSettings.GetLayoutType(navigationPath);
305307

0 commit comments

Comments
 (0)