public void Add(ISearchQuery query, bool select = true) { SearchQueryTreeViewItem item = null; if (query is SearchQueryAsset sqa) { item = new SearchQueryAssetTreeViewItem(this, sqa); m_ProjectQueries.AddChild(item); SetExpanded(m_ProjectQueries.id, true); SortBy(m_ProjectQueries, m_SortOrder); var evt = searchView.CreateEvent(SearchAnalytics.GenericEventType.QuickSearchCreateSearchQuery, query.searchText, query.filePath, "project"); #if USE_SEARCH_MODULE evt.intPayload1 = query.GetResultViewState().tableConfig != null ? 1 : 0; #endif SearchAnalytics.SendEvent(evt); } else if (query is SearchQuery sq && SearchQuery.IsUserQuery(sq)) { item = new SearchQueryUserTreeViewItem(this, sq); m_UserQueries.AddChild(item); SetExpanded(m_UserQueries.id, true); SortBy(m_UserQueries, m_SortOrder); var evt = searchView.CreateEvent(SearchAnalytics.GenericEventType.QuickSearchCreateSearchQuery, query.searchText, "", "user"); #if USE_SEARCH_MODULE evt.intPayload1 = query.GetResultViewState().tableConfig != null ? 1 : 0; #endif SearchAnalytics.SendEvent(evt); } if (item != null) { BuildRows(rootItem); if (select) { SetSelection(new int[] { item.id }); } } }
private void DrawQueryLabelAndIcon(Rect rowRect, RowGUIArgs args, SearchQueryTreeViewItem tvi, bool hovered, bool usePropertyDatabase) { var itemContent = Utils.GUIContentTemp(Utils.Simplify(tvi.query.displayName), SearchQuery.GetIcon(tvi.query)); var oldLeftPadding = Styles.itemLabel.padding.left; Styles.itemLabel.padding.left += Mathf.RoundToInt(GetContentIndent(args.item) + extraSpaceBeforeIconAndLabel); if (usePropertyDatabase) { var itemRect = new Rect(rowRect.x, rowRect.y, Mathf.Floor(rowRect.xMax - 27f), 22f); var oldClipping = Styles.itemLabel.clipping; Styles.itemLabel.clipping = TextClipping.Clip; Styles.itemLabel.Draw(itemRect, itemContent, hovered, args.selected, false, false); Styles.itemLabel.clipping = oldClipping; } else { Styles.itemLabel.Draw(rowRect, itemContent, hovered, args.selected, false, false); } Styles.itemLabel.padding.left = oldLeftPadding; }