protected override void RowGUI(RowGUIArgs args)
        {
            var evt     = Event.current;
            var rowRect = args.rowRect;

            isRenaming = isRenaming || args.isRenaming;
            if (args.item is SearchQueryCategoryTreeViewItem ctvi)
            {
                if (evt.type == EventType.Repaint)
                {
                    Styles.categoryLabel.Draw(rowRect, rowRect.Contains(evt.mousePosition), false, false, false);
                }

                EditorGUI.BeginDisabledGroup(!searchView.CanSaveQuery());
                var addBtn = new Rect(rowRect.xMax - 21f, rowRect.y, 22f, 22f);
                if (GUI.Button(addBtn, ctvi.addBtnContent, Styles.toolbarButton))
                {
                    switch (ctvi.content.text)
                    {
                    case userQuery:
                        searchView.SaveUserSearchQuery();
                        break;

                    case projectQuery:
                        searchView.SaveProjectSearchQuery();
                        break;
                    }
                }
                EditorGUI.EndDisabledGroup();

                var labelBtn = rowRect;
                labelBtn.width -= 20f;
                if (GUI.Button(labelBtn, Utils.GUIContentTemp($"{ctvi.content.text} ({ctvi.children.Count})", ctvi.content.tooltip), Styles.categoryLabel))
                {
                    SetExpanded(args.item.id, !IsExpanded(args.item.id));
                }
            }
            else if (args.item is SearchQueryTreeViewItem tvi)
            {
                if (!tvi.IsValid())
                {
                    SearchQueryAsset.ResetSearchQueryItems();
                    Reload();
                    return;
                }

                if (!args.isRenaming && evt.type == EventType.Repaint)
                {
                    var hovered = rowRect.Contains(evt.mousePosition);

                    using (var view = SearchMonitor.GetView())
                    {
                        if (tvi.query != null)
                        {
                            DrawQueryLabelAndIcon(rowRect, args, tvi, hovered, true);
                            DrawItemCount(tvi.query.itemCount, rowRect, hovered, args.selected);
                        }
                    }
                }
            }
        }
Exemple #2
0
 public SearchQueryAssetTreeViewItem(SearchQueryTreeView treeView, SearchQueryAsset query)
     : base(treeView, query.name, query.thumbnail)
 {
     m_Query = query;
     id      = m_Query.guid.GetHashCode();
 }