/// <summary> /// Handles key presses in search text boxes. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void searchTextBox_PreviewKeyDown(object sender, KeyEventArgs e) { switch (e.Key) { case Key.Enter: { TextBox textBox = sender as TextBox; if (textBox != null) { ViewModel.SearchProcessor searchProcessor = textBox.Tag as ViewModel.SearchProcessor; if (searchProcessor != null && !searchProcessor.ImmediateSearch) { searchProcessor.Search(textBox.Text); } } } break; } }
/// <summary> /// Setups the specified search processor /// </summary> /// <param name="searchProcessor">Search processor to be setup.</param> private void SetupSearchProcessor(SearchProcessor searchProcessor, UserSettings userSettings) { searchProcessor.SearchQuery = null; searchProcessor.Index = mCurrentIndex; searchProcessor.Searcher = mCurrentSearcher; searchProcessor.DirectoryFilter = mDirectoryFilter; searchProcessor.FileTypeFilter = mFileTypeFilter; //Default to being case insensitive, if there is no setting. string searchOption = "CaseSensitive"; searchProcessor.SetSearchOption(searchOption, false); if (userSettings != null) { InitializeSearchProcessorFromUserSettings(userSettings, searchProcessor); } searchProcessor.PropertyChanged += SearchProcessorPropertyChanged; }
/// <summary> /// Initializes a search processor from user settings. /// </summary> /// <param name="userSettings">User settings, from which the search processor should be initialized.</param> /// <param name="searchProcessor">Search processor, which should be initialized.</param> private static void InitializeSearchProcessorFromUserSettings(UserSettings userSettings, SearchProcessor searchProcessor) { if (userSettings == null) { return; } UserSettings.SearchProcessorSettings searchProcessorSettings = null; if (userSettings.SearchProcessors.TryGetValue(searchProcessor.SearchType, out searchProcessorSettings)) { searchProcessor.ImmediateSearch = searchProcessorSettings.ImmediateSearch; InitializeSearchOptionsFromOptionEntries(searchProcessorSettings.SearchOptions, searchProcessor.SearchOptions); } }