public void ColdStartFix() { // Fix Cold start for List view xaml island List <Result> list = new List <Result>(); Result r = new Result { Title = "hello" }; list.Add(r); Results.AddResults(list, "0"); Results.Clear(); MainWindowVisibility = System.Windows.Visibility.Collapsed; // Fix Cold start for plugins string s = "m"; var query = QueryBuilder.Build(s.Trim(), PluginManager.NonGlobalPlugins); var plugins = PluginManager.ValidPluginsForQuery(query); foreach (PluginPair plugin in plugins) { if (!plugin.Metadata.Disabled && plugin.Metadata.Name != "Window Walker") { var _ = PluginManager.QueryForPlugin(plugin, query); } } ; }
/// <summary> /// To avoid deadlock, this method should not called from main thread /// </summary> public void UpdateResultView(List <Result> list, PluginMetadata metadata, Query originQuery) { _queryHasReturn = true; ProgressBarVisibility = Visibility.Hidden; foreach (var result in list) { if (_topMostRecord.IsTopMost(result)) { result.Score = int.MaxValue; } else { result.Score += _userSelectedRecord.GetSelectedCount(result) * 5; } } if (originQuery.RawQuery == _lastQuery.RawQuery) { Results.AddResults(list, metadata.ID); } if (Results.Visbility != Visibility.Visible && list.Count > 0) { Results.Visbility = Visibility.Visible; } }
/// <summary> /// To avoid deadlock, this method should not called from main thread /// </summary> public void UpdateResultView(List <ResultsForUpdate> updates) { foreach (ResultsForUpdate update in updates) { Logger.WoxTrace($"{update.Metadata.Name}:{update.Query.RawQuery}"); foreach (var result in update.Results) { if (update.Token.IsCancellationRequested) { return; } if (_topMostRecord.IsTopMost(result)) { result.Score = int.MaxValue; } else if (!update.Metadata.KeepResultRawScore) { result.Score += _userSelectedRecord.GetSelectedCount(result) * 5; } else { result.Score = result.Score; } } } Results.AddResults(updates); if (Results.Visbility != Visibility.Visible && Results.Count > 0) { Results.Visbility = Visibility.Visible; } }
/// <summary> /// To avoid deadlock, this method should not called from main thread /// </summary> public void UpdateResultView(List <Result> list, PluginMetadata metadata, Query originQuery) { if (list == null) { throw new ArgumentNullException(nameof(list)); } if (metadata == null) { throw new ArgumentNullException(nameof(metadata)); } if (originQuery == null) { throw new ArgumentNullException(nameof(originQuery)); } foreach (var result in list) { if (_topMostRecord.IsTopMost(result)) { result.Score = int.MaxValue; } else { result.Score += _userSelectedRecord.GetSelectedCount(result) * 5; } } if (originQuery.RawQuery == _lastQuery.RawQuery) { Results.AddResults(list, metadata.ID); } }
public void ColdStartFix() { // Fix Cold start for List view xaml island List <Result> list = new List <Result>(); Result r = new Result { Title = "hello", }; list.Add(r); Results.AddResults(list, _updateToken); Results.Clear(); MainWindowVisibility = System.Windows.Visibility.Collapsed; // Fix Cold start for plugins string s = "m"; var pluginQueryPairs = QueryBuilder.Build(ref s, PluginManager.NonGlobalPlugins); // To execute a query corresponding to each plugin foreach (KeyValuePair <PluginPair, Query> pluginQueryItem in pluginQueryPairs) { var plugin = pluginQueryItem.Key; var query = pluginQueryItem.Value; if (!plugin.Metadata.Disabled && plugin.Metadata.Name != "Window Walker") { _ = PluginManager.QueryForPlugin(plugin, query); } } }
/// <summary> /// To avoid deadlock, this method should not called from main thread /// </summary> public void UpdateResultView(List <Result> list, Query originQuery, CancellationToken ct) { if (list == null) { throw new ArgumentNullException(nameof(list)); } if (originQuery == null) { throw new ArgumentNullException(nameof(originQuery)); } foreach (var result in list) { if (_topMostRecord.IsTopMost(result)) { result.Score = int.MaxValue; } else { result.Score += _userSelectedRecord.GetSelectedCount(result) * 5; } } if (originQuery.RawQuery == _currentQuery.RawQuery) { ct.ThrowIfCancellationRequested(); Results.AddResults(list, ct); } }
/// <summary> /// To avoid deadlock, this method should not called from main thread /// </summary> public void UpdateResultView(List <Result> list, string originQuery, CancellationToken ct) { if (list == null) { throw new ArgumentNullException(nameof(list)); } if (originQuery == null) { throw new ArgumentNullException(nameof(originQuery)); } foreach (var result in list) { if (_topMostRecord.IsTopMost(result)) { result.Score = int.MaxValue; } else { result.Score += _userSelectedRecord.GetSelectedCount(result) * 5; } } // Using CurrentCultureIgnoreCase since this is user facing if (originQuery.Equals(_currentQuery, StringComparison.CurrentCultureIgnoreCase)) { ct.ThrowIfCancellationRequested(); Results.AddResults(list, ct); } }
private void DisplayQueryHistory(HistoryItem history) { if (history != null) { var historyMetadata = QueryHistory.MetaData; QueryText = history.Query; OnTextBoxSelected(); var executeQueryHistoryTitle = InternationalizationManager.Instance.GetTranslation("executeQuery"); var lastExecuteTime = InternationalizationManager.Instance.GetTranslation("lastExecuteTime"); Results.RemoveResultsExcept(historyMetadata); var result = new Result { Title = string.Format(executeQueryHistoryTitle, history.Query), SubTitle = string.Format(lastExecuteTime, history.ExecutedDateTime), IcoPath = "Images\\history.png", PluginDirectory = Infrastructure.Constant.ProgramDirectory, Action = _ => { QueryText = history.Query; OnTextBoxSelected(); return(false); } }; Task.Run(() => { Results.AddResults(new List <Result> { result }, historyMetadata.ID); }, _updateToken); } }
/// <summary> /// To avoid deadlock, this method should not called from main thread /// </summary> public void UpdateResultView(List <Result> list, PluginMetadata metadata, Query originQuery, CancellationToken token) { foreach (var result in list) { if (token.IsCancellationRequested) { return; } if (_topMostRecord.IsTopMost(result)) { result.Score = int.MaxValue; } else if (!metadata.KeepResultRawScore) { result.Score += _userSelectedRecord.GetSelectedCount(result) * 5; } } if (token.IsCancellationRequested) { return; } if (originQuery.RawQuery == _lastQuery.RawQuery) { Results.AddResults(list, metadata.ID, token); } if (Results.Visbility != Visibility.Visible && list.Count > 0) { Results.Visbility = Visibility.Visible; } }
private void UpdateResultViewInternal(List <Result> list, PluginMetadata metadata) { Results.AddResults(list, metadata.ID); }
private void UpdateResultViewInternal(List <Result> list, PluginMetadata metadata) { Stopwatch.Normal($"UI update cost for {metadata.Name}", () => { Results.AddResults(list, metadata.ID); }); }