public static QuickSearch ShowPicker(SearchViewState args)
        {
            var qs = Create <SearchPickerWindow>(args.LoadDefaults(SearchFlags.OpenPicker));

            qs.searchEventStatus = SearchEventStatus.WaitForEvent;
            qs.titleContent.text = $"Select {args.title ?? "item"}...";

            if (args.context.options.HasAny(SearchFlags.Dockable))
            {
                qs.Show();
            }
            else
            {
                qs.ShowAuxWindow();
            }

            // The window position can only be set one frame later.
            Utils.CallDelayed(() =>
            {
                if (args.HasFlag(SearchViewFlags.Centered))
                {
                    qs.position = args.position = Utils.GetMainWindowCenteredPosition(args.hasWindowSize ? args.windowSize : qs.position.size);
                }
                qs.Focus();
            });
            return(qs);
        }
        public bool SelectObject(ISearchContext context,
                                 Action <Object, bool> selectHandler, Action <Object> trackingHandler)
        {
            var selectContext = (ObjectSelectorSearchContext)context;
            var viewFlags     = SearchFlags.OpenPicker;

            if (Utils.IsRunningTests())
            {
                viewFlags |= SearchFlags.Dockable;
            }
            SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.QuickSearchPickerOpens, "", "object", "ObjectSelectorEngine");
            var searchQuery = string.Join(" ", context.requiredTypeNames.Select(tn => tn == null ? "" : $"t:{tn.ToLowerInvariant()}"));

            if (string.IsNullOrEmpty(searchQuery))
            {
                searchQuery = "";
            }
            else
            {
                searchQuery += " ";
            }
            var viewstate = new SearchViewState(
                SearchService.CreateContext(GetObjectSelectorProviders(selectContext), searchQuery, viewFlags), selectHandler, trackingHandler,
                selectContext.requiredTypeNames.First(), selectContext.requiredTypes.First());

            qsWindow = SearchService.ShowPicker(viewstate) as QuickSearch;
            return(qsWindow != null);
        }
Example #3
0
 public override void SetViewState(SearchViewState viewState)
 {
     if (viewState.tableConfig == null)
     {
         return;
     }
     SetSearchTable(viewState.tableConfig.Clone());
 }
Example #4
0
        internal void ShowObjectSelector()
        {
            SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.QuickSearchPickerOpens, searchContext.searchText, "object", "objectfield");
            m_OriginalObject = value;
            var searchViewState = new SearchViewState(searchContext, OnSelection, OnObjectChanged, objectType.ToString(), objectType)
            {
                title = $"{objectType.Name}"
            }.SetSearchViewFlags(searchViewFlags);

            SearchService.ShowPicker(searchViewState);
        }
Example #5
0
        protected override void LoadSessionSettings(SearchViewState args)
        {
            RefreshSearch();
            UpdateViewState(args);

            if (!string.IsNullOrEmpty(args.group))
            {
                SelectGroup(args.group);
            }
            else if (args.hideAllGroup && context.providers.FirstOrDefault() is SearchProvider firstProvider)
            {
                SelectGroup(firstProvider.type);
            }
        }
        internal void Assign(SearchViewState state)
        {
            providerIds = state.context.providers.Select(p => p.id).ToArray();
            searchFlags = state.searchFlags;
            searchText  = state.context.searchText;
            sessionId   = state.sessionId;
            sessionName = state.sessionName;

            title         = state.title;
            itemSize      = state.itemSize;
            position      = state.position;
            flags         = state.flags;
            forceViewMode = state.forceViewMode;

            BuildContext();
        }
Example #7
0
        public bool SelectObject(ISearchContext context,
                                 Action <Object, bool> selectHandler, Action <Object> trackingHandler)
        {
            var selectContext = (ObjectSelectorSearchContext)context;
            var viewFlags     = SearchFlags.OpenPicker;

            if (Utils.IsRunningTests())
            {
                viewFlags |= SearchFlags.Dockable;
            }
            SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.QuickSearchPickerOpens, "", "object", "ObjectSelectorEngine");
            var viewstate = new SearchViewState(
                SearchService.CreateContext("", viewFlags), selectHandler, trackingHandler,
                selectContext.requiredTypeNames.First(), selectContext.requiredTypes.First());


            qsWindow = SearchService.ShowPicker(viewstate) as QuickSearch;

            return(qsWindow != null);
        }
Example #8
0
        static void ShowSearchPicker(SearchContext context, SearchViewFlags searchViewFlags, SerializedProperty property, Object originalObject, int id, Event evt, Type objType)
        {
            s_DelegateWindow = EditorWindow.focusedWindow;
            s_ModalUndoGroup = Undo.GetCurrentGroup();
            s_OriginalItem   = originalObject;
            var searchViewState = new SearchViewState(context,
                                                      (item, canceled) => SendSelectionEvent(item, canceled, id),
                                                      item => SendTrackingEvent(item, id), objType.ToString(), objType)
                                  .SetSearchViewFlags(searchViewFlags);

            if (property != null)
            {
                searchViewState.title = $"{property.displayName} ({objType.Name})";
            }
            SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.QuickSearchPickerOpens, context.searchText, "object", "objectfield");
            SearchService.ShowPicker(searchViewState);

            evt.Use();
            GUIUtility.ExitGUI();
        }
 protected override void LoadSessionSettings(SearchViewState args)
 {
     RefreshSearch();
     UpdateViewState(args);
 }
Example #10
0
 /// <summary>
 /// Open and show the Search Picker window.
 /// </summary>
 /// <param name="viewState">View parameters</param>
 /// <returns>Returns the newly create search view instance.</returns>
 public static ISearchView ShowPicker(SearchViewState viewState)
 {
     return(SearchPickerWindow.ShowPicker(viewState));
 }
Example #11
0
 /// <summary>
 /// Show a search window.
 /// </summary>
 /// <param name="viewState">Defines search view parameters for creation</param>
 /// <returns></returns>
 public static ISearchView ShowWindow(SearchViewState viewState)
 {
     return(QuickSearch.Create(viewState).ShowWindow());
 }
 /// <summary>
 /// Show a search window.
 /// </summary>
 /// <param name="viewState">Defines search view parameters for creation</param>
 /// <returns></returns>
 public static ISearchView ShowWindow(SearchViewState viewState)
 {
     return(QuickSearch.Create(viewState).ShowWindow(viewState.windowSize.x, viewState.windowSize.y,
                                                     SearchFlags.OpenDefault | (viewState.context?.options ?? SearchFlags.None)));
 }
        internal static SearchViewState LoadDefaults()
        {
            var viewState = new SearchViewState();

            return(viewState.LoadDefaults());
        }