Fix CMD plugin for new result panel

This commit is contained in:
bao-qian 2015-11-08 02:27:37 +00:00
parent b33b696336
commit d946e18fa2

View file

@ -21,22 +21,17 @@ namespace Wox.Plugin.CMD
public List<Result> Query(Query query) public List<Result> Query(Query query)
{ {
List<Result> results = new List<Result>(); List<Result> results = new List<Result>();
List<Result> pushedResults = new List<Result>();
string cmd = query.Search; string cmd = query.Search;
if (string.IsNullOrEmpty(cmd)) if (string.IsNullOrEmpty(cmd))
{ {
return GetAllHistoryCmds(); return ResultsFromlHistory();
} }
else else
{ {
var queryCmd = GetCurrentCmd(cmd); var queryCmd = GetCurrentCmd(cmd);
context.API.PushResults(query, context.CurrentPluginMetadata, new List<Result>() { queryCmd }); results.Add(queryCmd);
pushedResults.Add(queryCmd);
var history = GetHistoryCmds(cmd, queryCmd); var history = GetHistoryCmds(cmd, queryCmd);
context.API.PushResults(query, context.CurrentPluginMetadata, history); results.AddRange(history);
pushedResults.AddRange(history);
try try
{ {
@ -57,7 +52,11 @@ namespace Wox.Plugin.CMD
if (basedir != null) if (basedir != null)
{ {
List<string> autocomplete = Directory.GetFileSystemEntries(basedir).Select(o => dir + Path.GetFileName(o)).Where(o => o.StartsWith(cmd, StringComparison.OrdinalIgnoreCase) && !results.Any(p => o.Equals(p.Title, StringComparison.OrdinalIgnoreCase)) && !pushedResults.Any(p => o.Equals(p.Title, StringComparison.OrdinalIgnoreCase))).ToList(); var autocomplete = Directory.GetFileSystemEntries(basedir).
Select(o => dir + Path.GetFileName(o)).
Where(o => o.StartsWith(cmd, StringComparison.OrdinalIgnoreCase) &&
!results.Any(p => o.Equals(p.Title, StringComparison.OrdinalIgnoreCase)) &&
!results.Any(p => o.Equals(p.Title, StringComparison.OrdinalIgnoreCase))).ToList();
autocomplete.Sort(); autocomplete.Sort();
results.AddRange(autocomplete.ConvertAll(m => new Result() results.AddRange(autocomplete.ConvertAll(m => new Result()
{ {
@ -94,7 +93,7 @@ namespace Wox.Plugin.CMD
var ret = new Result var ret = new Result
{ {
Title = m.Key, Title = m.Key,
SubTitle = string.Format(context.API.GetTranslation("wox_plugin_cmd_cmd_has_been_executed_times"), m.Value), SubTitle = string.Format(context.API.GetTranslation("wox_plugin_cmd_cmd_has_been_executed_times"), m.Value),
IcoPath = "Images/cmd.png", IcoPath = "Images/cmd.png",
Action = (c) => Action = (c) =>
{ {
@ -125,13 +124,13 @@ namespace Wox.Plugin.CMD
return result; return result;
} }
private List<Result> GetAllHistoryCmds() private List<Result> ResultsFromlHistory()
{ {
IEnumerable<Result> history = CMDStorage.Instance.CMDHistory.OrderByDescending(o => o.Value) IEnumerable<Result> history = CMDStorage.Instance.CMDHistory.OrderByDescending(o => o.Value)
.Select(m => new Result .Select(m => new Result
{ {
Title = m.Key, Title = m.Key,
SubTitle = string.Format(context.API.GetTranslation("wox_plugin_cmd_cmd_has_been_executed_times"), m.Value), SubTitle = string.Format(context.API.GetTranslation("wox_plugin_cmd_cmd_has_been_executed_times"), m.Value),
IcoPath = "Images/cmd.png", IcoPath = "Images/cmd.png",
Action = (c) => Action = (c) =>
{ {