static private CreateFilter ( string searchString, SearchMode searchMode ) : SearchFilter | ||
searchString | string | |
searchMode | SearchMode | |
return | SearchFilter |
// Returns number of rows in search result int InitializeSearchResults(HierarchyProperty property, int minAllowedDepth) { // Search setup const bool kShowItemHasChildren = false; const int kItemDepth = 0; int currentSceneHandle = -1; int row = 0; var searchFilter = SearchableEditorWindow.CreateFilter(searchString, (SearchableEditorWindow.SearchMode)m_SearchMode); var searchContext = (SearchService.HierarchySearchContext)m_SearchSessionHandler.context; searchContext.filter = searchFilter; searchContext.rootProperty = property; m_SearchSessionHandler.BeginSearch(searchString); var headerRows = new List <int>(); while (property.NextWithDepthCheck(null, minAllowedDepth)) { if (!SearchService.Scene.Filter(m_SearchString, property, searchContext)) { property.SetFilteredVisibility(false); continue; } property.SetFilteredVisibility(true); var item = EnsureCreatedItem(row); // Add scene headers when encountering a new scene (and it's not a header in itself) if (AddSceneHeaderToSearchIfNeeded(item, property, ref currentSceneHandle)) { row++; headerRows.Add(row); if (IsSceneHeader(property)) { continue; // no need to add it } item = EnsureCreatedItem(row); // prepare for item below } InitTreeViewItem(item, property, kShowItemHasChildren, kItemDepth); row++; } m_SearchSessionHandler.EndSearch(); int numRows = row; // Now sort scene section if (headerRows.Count > 0) { int currentSortStart = headerRows[0]; for (int i = 1; i < headerRows.Count; i++) { int count = headerRows[i] - currentSortStart - 1; m_ListOfRows.Sort(currentSortStart, count, new TreeViewItemAlphaNumericSort()); currentSortStart = headerRows[i]; } // last section m_ListOfRows.Sort(currentSortStart, numRows - currentSortStart, new TreeViewItemAlphaNumericSort()); } return(numRows); }
// Pre 4.0 interface (kept for backwards compability) public void SetSearchFilter(string searchString, int mode) { SearchFilter filter = SearchableEditorWindow.CreateFilter(searchString, (SearchableEditorWindow.SearchMode)mode); SetSearchFilter(filter); }
public void SetSearchFilter(string searchString, int mode) { this.SetSearchFilter(SearchableEditorWindow.CreateFilter(searchString, (SearchableEditorWindow.SearchMode)mode)); }