Exemple #1
0
        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;
        }