**Status:** First stages
---
=====Team=====
**Commissioner:** @billreynish
**Project leader:** @HooglyBoogly
=====Description=====
**Big picture:** Method to filter properties in the properties editor, but general enough to use elsewhere too
**Use cases**:
* A general way to find that one setting you always lose track of
* In more complicated situations, a faster way to navigate to a property than to scroll to and expand the relevant panels
**Design:**
T71185
**Engineer plan:**
Two new "passes" will be needed:
1. A filter for buttons that don't match the filter at the end of the layout code,
2. A "simple layout" pass, which runs a simpler version of the layout code for panels in all tabs to highlight the ones with active items.
It would also be conceivable to build the property search layout during the same pass as the regular layout code,
but there are a few downsides to that method, mostly in the added complexity to the regular layout code.
=====Work plan=====
**Milestone 1 - Poperty Search and Panels**
Time estimate: //A week or two//
[x] Search filter
[x] RNA property buttons
[x] Operator buttons
[x] Search based on label buttons
[x] Menu buttons
[x] Box buttons
[ ] Highlighting and dimming of buttons
[x] Highlight on panel headers
[x] Highlight on subpanel label text
[x] Dimming of icons_only=True buttons (e.g., lock)
[ ] Highlight button labels
[x] Normal labels
[ ] `?` Headers
[ ] Interaction with panels
[x] Search closed panels and their subpanels
[ ] Change panel expansion
[x] Auto expand matching panels and subpanels (and collapse others)
[ ] `?` Revert expansion to before search (keep changes where user interacted)
[x] Panels animate as the search changes
[x] Match entire panel if panel label matches search
[ ] Match all subpanels if panel label matches
[x] Make pin button work in header
[x] ctrl-F to activate search box
[x] alt-F to clear seach box
**Milestone 2 - Highlight Tabs with Filtered Items**
Time estimate: //A week//
[ ] Duplicate the properties editor and run the search
[x] Get search to run
[x] Store "has property" per tab
[ ] Fix all consequences of duplicating the space / memory leaks
[x] Add the ability to gray out some icons to tabs layout
[x] Investigate performance
[x] `?` Switch to the next highlighted tab if the current tab is empty
**Milestone 3 - Performance**
Time estimate: About a week
[ ] Use ghash instead of string lookups
[ ] `?` Possibly only search in other tabs while editing search string
[ ] `?` Look into using `ED_region_tag_redraw_no_rebuild` for some interactions
**Branch**: `property-search-ui-v2`