From c79b512191e8014af151c3dbb2411f4866eaae34 Mon Sep 17 00:00:00 2001 From: Lasith Manujitha Date: Mon, 15 Jul 2024 12:22:12 +0530 Subject: [PATCH] feat: Everything Run Count option Added an option in Explorer > Everything Settings to enable/disable Run Count for file/folder. --- Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml | 1 + .../Search/Everything/EverythingSearchManager.cs | 8 +++++--- .../Search/Everything/EverythingSearchOption.cs | 3 ++- .../Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs | 2 +- Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs | 1 + .../Views/ExplorerSettings.xaml | 5 +++++ 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml index 3e6e5d0fb59..60a15ca3392 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml @@ -141,6 +141,7 @@ Warning: This is not a Fast Sort option, searches may be slow Search Full Path + Enable File/Folder Run Count Click to launch or install Everything Everything Installation diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchManager.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchManager.cs index 2bb9a73c2f9..7186acff5b4 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchManager.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchManager.cs @@ -64,7 +64,7 @@ public async IAsyncEnumerable SearchAsync(string search, [Enumerat if (token.IsCancellationRequested) yield break; - var option = new EverythingSearchOption(search, Settings.SortOption, IsFullPathSearch: Settings.EverythingSearchFullPath); + var option = new EverythingSearchOption(search, Settings.SortOption, IsFullPathSearch: Settings.EverythingSearchFullPath, IsRunCounterEnabled: Settings.EverythingEnableRunCount); await foreach (var result in EverythingApi.SearchAsync(option, token)) yield return result; @@ -96,7 +96,8 @@ public async IAsyncEnumerable ContentSearchAsync(string plainSearc Settings.SortOption, IsContentSearch: true, ContentSearchKeyword: contentSearch, - IsFullPathSearch: Settings.EverythingSearchFullPath); + IsFullPathSearch: Settings.EverythingSearchFullPath, + IsRunCounterEnabled: Settings.EverythingEnableRunCount); await foreach (var result in EverythingApi.SearchAsync(option, token)) { @@ -115,7 +116,8 @@ public async IAsyncEnumerable EnumerateAsync(string path, string s Settings.SortOption, ParentPath: path, IsRecursive: recursive, - IsFullPathSearch: Settings.EverythingSearchFullPath); + IsFullPathSearch: Settings.EverythingSearchFullPath, + IsRunCounterEnabled: Settings.EverythingEnableRunCount); await foreach (var result in EverythingApi.SearchAsync(option, token)) yield return result; diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchOption.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchOption.cs index 3d930becf50..92b8e96238e 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchOption.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchOption.cs @@ -11,6 +11,7 @@ public record struct EverythingSearchOption( bool IsRecursive = true, int Offset = 0, int MaxCount = 100, - bool IsFullPathSearch = true + bool IsFullPathSearch = true, + bool IsRunCounterEnabled = true ); } diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs index 02588086f68..1e7555a8d49 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs @@ -348,7 +348,7 @@ private static void OpenFolder(string folderPath, string fileNameOrFilePath = nu private static void IncrementEverythingRunCounterIfNeeded(string fileOrFolder) { - if (Settings.EverythingEnabled) + if (Settings.EverythingEnabled && Settings.EverythingEnableRunCount) _ = Task.Run(() => EverythingApi.IncrementRunCounterAsync(fileOrFolder)); } diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs index c580a54b198..8a7daf5859d 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs @@ -151,6 +151,7 @@ public enum ContentIndexSearchEngineOption ContentSearchEngine == ContentIndexSearchEngineOption.Everything; public bool EverythingSearchFullPath { get; set; } = false; + public bool EverythingEnableRunCount { get; set; } = true; #endregion diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Views/ExplorerSettings.xaml b/Plugins/Flow.Launcher.Plugin.Explorer/Views/ExplorerSettings.xaml index a23faf9ea58..59d8efc7321 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Views/ExplorerSettings.xaml +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Views/ExplorerSettings.xaml @@ -465,6 +465,11 @@ HorizontalAlignment="Left" Content="{DynamicResource flowlauncher_plugin_everything_search_fullpath}" IsChecked="{Binding Settings.EverythingSearchFullPath}" /> +