add ordering to file and folder results

This commit is contained in:
Jeremy Wu 2020-06-08 19:21:47 +10:00
parent a196c4f269
commit 82cfddbdb3
2 changed files with 18 additions and 17 deletions

View file

@ -90,7 +90,7 @@ namespace Flow.Launcher.Plugin.Explorer.Search.DirectoryInfo
} }
// Intial ordering, this order can be updated later by UpdateResultView.MainViewModel based on history of user selection. // Intial ordering, this order can be updated later by UpdateResultView.MainViewModel based on history of user selection.
return results.Concat(folderList.OrderBy(x => x.Title)).Concat(fileList.OrderBy(x => x.Title)).ToList(); //<============= MOVE OUT return results.Concat(folderList.OrderBy(x => x.Title)).Concat(fileList.OrderBy(x => x.Title)).ToList();
} }
} }
} }

View file

@ -3,6 +3,7 @@ using Microsoft.Search.Interop;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.OleDb; using System.Data.OleDb;
using System.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace Flow.Launcher.Plugin.Explorer.Search.WindowsIndex namespace Flow.Launcher.Plugin.Explorer.Search.WindowsIndex
@ -29,6 +30,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search.WindowsIndex
internal List<Result> ExecuteWindowsIndexSearch(string indexQueryString, string connectionString, Query query) internal List<Result> ExecuteWindowsIndexSearch(string indexQueryString, string connectionString, Query query)
{ {
var folderResults = new List<Result>();
var fileResults = new List<Result>();
var results = new List<Result>(); var results = new List<Result>();
try try
@ -48,11 +51,18 @@ namespace Flow.Launcher.Plugin.Explorer.Search.WindowsIndex
{ {
if (dataReaderResults.GetValue(0) != DBNull.Value && dataReaderResults.GetValue(1) != DBNull.Value) if (dataReaderResults.GetValue(0) != DBNull.Value && dataReaderResults.GetValue(1) != DBNull.Value)
{ {
results.Add(CreateResult( if (dataReaderResults.GetString(2) == "Directory")
dataReaderResults.GetString(0), {
dataReaderResults.GetString(1), folderResults.Add(resultManager.CreateFolderResult(
dataReaderResults.GetString(2), dataReaderResults.GetString(0),
query)); Constants.DefaultFolderSubtitleString,
dataReaderResults.GetString(1),
query, true, true));
}
else
{
fileResults.Add(resultManager.CreateFileResult(dataReaderResults.GetString(1), query, true, true));
}
} }
} }
} }
@ -70,17 +80,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search.WindowsIndex
LogException("General error from performing index search", e); LogException("General error from performing index search", e);
} }
return results; // Intial ordering, this order can be updated later by UpdateResultView.MainViewModel based on history of user selection.
} return results.Concat(folderResults.OrderBy(x => x.Title)).Concat(fileResults.OrderBy(x => x.Title)).ToList(); ;
private Result CreateResult(string filename, string path, string fileType, Query query)
{
if (fileType == "Directory")
return resultManager.CreateFolderResult(filename, Constants.DefaultFolderSubtitleString, path, query, true, true);
else
{
return resultManager.CreateFileResult(path, query, true, true);
}
} }
internal List<Result> WindowsIndexSearch(string searchString, string connectionString, Func<string, string> constructQuery, Query query) internal List<Result> WindowsIndexSearch(string searchString, string connectionString, Func<string, string> constructQuery, Query query)