diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/FolderLink.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/FolderLink.cs index 43ecdad97..02ad837d3 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/FolderLink.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/FolderLink.cs @@ -9,6 +9,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search.FolderLinks { public string Path { get; set; } + public ResultType Type { get; set; } = ResultType.Folder; + [JsonIgnore] public string Nickname { diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/QuickFolderAccess.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/QuickFolderAccess.cs index 6f0020ac9..84e036c94 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/QuickFolderAccess.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/FolderLinks/QuickFolderAccess.cs @@ -23,14 +23,32 @@ namespace Flow.Launcher.Plugin.Explorer.Search.FolderLinks var queriedFolderLinks = folderLinks.Where(x => x.Nickname.StartsWith(search, StringComparison.OrdinalIgnoreCase)); - return queriedFolderLinks.Select(item => + return queriedFolderLinks + .Where(x => x.Type == ResultType.Folder) + .Select(item => resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) + .OrderBy(x => x.Title) + .Concat( + queriedFolderLinks + .Where(x => x.Type == ResultType.File) + .Select(item => + resultManager.CreateFileResult(item.Path, query)) + .OrderBy(x => x.Title)) .ToList(); } internal List FolderListAll(Query query, List folderLinks) => folderLinks - .Select(item => resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) + .Where(x => x.Type == ResultType.Folder) + .Select(item => + resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) + .OrderBy(x => x.Title) + .Concat( + folderLinks + .Where(x => x.Type == ResultType.File) + .Select(item => + resultManager.CreateFileResult(item.Path, query)) + .OrderBy(x => x.Title)) .ToList(); } } diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs index 6a336c59a..24eb99724 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs @@ -140,7 +140,7 @@ namespace Flow.Launcher.Plugin.Explorer.Search public bool ShowIndexState { get; set; } } - internal enum ResultType + public enum ResultType { Volume, Folder,