/// <summary> /// Search method that matches the title of windows with the user search text /// </summary> /// <param name="openWindows"></param> /// <returns></returns> private List <WindowSearchResult> FuzzySearchOpenWindows(List <Window> openWindows) { List <WindowSearchResult> result = new List <WindowSearchResult>(); List <SearchString> searchStrings = new List <SearchString>(); List <string> shortcuts = SettingsManager.Instance.GetShortcut(this.SearchText); foreach (var shortcut in shortcuts) { searchStrings.Add(new SearchString(shortcut, WindowSearchResult.SearchType.Shortcut)); } searchStrings.Add(new SearchString(this.searchText, WindowSearchResult.SearchType.Fuzzy)); foreach (var searchString in searchStrings) { foreach (var window in openWindows) { var titleMatch = FuzzyMatching.FindBestFuzzyMatch(window.Title, searchString.SearchText); var processMatch = FuzzyMatching.FindBestFuzzyMatch(window.ProcessName, searchString.SearchText); if ((titleMatch.Count != 0 || processMatch.Count != 0) && window.Title.Length != 0) { var temp = new WindowSearchResult(window, titleMatch, processMatch, searchString.SearchType); result.Add(temp); } } } System.Diagnostics.Debug.Print("Found " + result.Count + " windows that match the search text"); return(result); }
/// <summary> /// Constructor /// </summary> /// <param name="searchText"></param> /// <param name="searchType"></param> public SearchString(string searchText, WindowSearchResult.SearchType searchType) { this.SearchText = searchText; this.SearchType = searchType; }
/// <summary> /// Search method that matches the title of windows with the user search text /// </summary> /// <param name="openWindows"></param> /// <returns></returns> private List<WindowSearchResult> FuzzySearchOpenWindows(List<Window> openWindows) { List<WindowSearchResult> result = new List<WindowSearchResult>(); List<SearchString> searchStrings = new List<SearchString>(); List<string> shortcuts = SettingsManager.Instance.GetShortcut(this.SearchText); foreach(var shortcut in shortcuts) { searchStrings.Add(new SearchString(shortcut, WindowSearchResult.SearchType.Shortcut)); } searchStrings.Add(new SearchString(this.searchText, WindowSearchResult.SearchType.Fuzzy)); foreach (var searchString in searchStrings) { foreach (var window in openWindows) { var titleMatch = FuzzyMatching.FindBestFuzzyMatch(window.Title, searchString.SearchText); var processMatch = FuzzyMatching.FindBestFuzzyMatch(window.ProcessName, searchString.SearchText); if ((titleMatch.Count != 0 || processMatch.Count != 0) && window.Title.Length != 0) { var temp = new WindowSearchResult(window, titleMatch, processMatch, searchString.SearchType); result.Add(temp); } } } System.Diagnostics.Debug.Print("Found " + result.Count + " windows that match the search text"); return result; }