Properties Search #71185

Closed
opened 2019-10-29 11:21:36 +01:00 by William Reynish · 29 comments

With Blender's ever expanding feature set, it's useful to be able to search for properties, just like users can currently search for data inside the Outliner. Here's how we think it should work:

  • We replace the Properties header content with a search box, just like the Outliner and move the context breadcrumbs back inside the tabs at the top
  • When the user types in a search string, we show a list of matching properties. It searches the RNA names, but can also search for UI overriden names.
  • These properties have no UI layout - we just display them in a list, which fits nicely with the concept of the single column UI.
  • These properties use the title from RNA and not the overridden name from the UI layout script. Otherwise the name could end up being a confusing abbreviation like 'Y' instead of 'Aspect Y'
  • It will search across all properties tabs, but only show results for one tab at a time
  • We can use greying out for the properties tabs to show which other tabs may include results for the search string:
    Screenshot 2019-10-29 at 11.20.00.png
  • We can still display the container panel for each result, so users know where to find that property in the future:
    Screenshot 2019-10-29 at 11.17.57.png

{F7869070, size=full}

We can also support searching more dynamic content, such as modifiers:
Screenshot 2019-10-29 at 13.54.21.png

With Blender's ever expanding feature set, it's useful to be able to search for properties, just like users can currently search for data inside the Outliner. Here's how we think it should work: - We replace the Properties header content with a search box, just like the Outliner and move the context breadcrumbs back inside the tabs at the top - When the user types in a search string, we show a list of matching properties. It searches the RNA names, but can also search for UI overriden names. - These properties have no UI layout - we just display them in a list, which fits nicely with the concept of the single column UI. - These properties use the title from RNA and not the overridden name from the UI layout script. Otherwise the name could end up being a confusing abbreviation like 'Y' instead of 'Aspect Y' - It will search across all properties tabs, but only show results for one tab at a time - We can use greying out for the properties tabs to show which other tabs may include results for the search string: ![Screenshot 2019-10-29 at 11.20.00.png](https://archive.blender.org/developer/F7869108/Screenshot_2019-10-29_at_11.20.00.png) - We can still display the container panel for each result, so users know where to find that property in the future: ![Screenshot 2019-10-29 at 11.17.57.png](https://archive.blender.org/developer/F7869106/Screenshot_2019-10-29_at_11.17.57.png) {[F7869070](https://archive.blender.org/developer/F7869070/Screenshot_2019-10-29_at_11.03.39.png), size=full} We can also support searching more dynamic content, such as modifiers: ![Screenshot 2019-10-29 at 13.54.21.png](https://archive.blender.org/developer/F7869310/Screenshot_2019-10-29_at_13.54.21.png)
William Reynish self-assigned this 2019-10-29 11:21:36 +01:00
Added subscribers: @WilliamReynish, @xdanic, @jc4d, @CandleComet, @RosarioRosato, @semaphore, @mendio, @0o00o0oo, @antoniov, @T.R.O.Nunes, @Ehab, @BartekMoniewski, @DuarteRamos, @MaciejJutrzenka, @Znio.G, @brecht, @Sergey, @dfelinto, @mont29, @ideasman42
William Reynish removed their assignment 2019-10-29 11:21:54 +01:00
Julian Eisel was assigned by William Reynish 2019-10-29 11:21:54 +01:00

This will be a very welcome addition. Will these results be limited to properties that we can find in the properties window, or will they show results from other editors?

I'd vote for the former, however one common problem of "search result" UIs is knowing where the original location for each entry is.
Some times it might be useful to know where in the properties window that property came from, so you could find them later without searching, or see related settings close by.

Not sure if it is possible to make the property name clickable when displayed in the search results so clicking it takes you to the appropriate tab and panel, or perhaps show a breadcrumb for each; though I can see how it will easily make the UI crowded.

This will be a very welcome addition. Will these results be limited to properties that we can find in the properties window, or will they show results from other editors? I'd vote for the former, however one common problem of "search result" UIs is knowing where the original location for each entry is. Some times it might be useful to know where in the properties window that property came from, so you could find them later without searching, or see related settings close by. Not sure if it is possible to make the property name clickable when displayed in the search results so clicking it takes you to the appropriate tab and panel, or perhaps show a breadcrumb for each; though I can see how it will easily make the UI crowded.

Added subscriber: @AnadinX

Added subscriber: @AnadinX

Great idea. I still think it would be useful even with changing to nodal modifiers, there will always be panels with things to find in them

Great idea. I still think it would be useful even with changing to nodal modifiers, there will always be panels with things to find in them
Member

Added subscriber: @JulienKaspar

Added subscriber: @JulienKaspar
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

Will this work if a different Language is being displayed?

Will this work if a different Language is being displayed?
Member

Interesting to think about reset behaviour. If we are in the state illustrated above, searching for “aspect”, which elements are active?

It could be that all tabs are inactive in that state and you are required to clear the search, by clicking the “x”, to proceed as normal.

However it might be nicer if clicking any of the tabs would immediately clear the search and open the panel. Clicking on a greyed-out tab would display as normal. But clicking on a highlighted tab would not only clear search but would open such that all sections are collapsed except for the ones containing matched items. That way you don’t need to add anything new for “go to original location” as mentioned earlier.

Interesting to think about reset behaviour. If we are in the state illustrated above, searching for “aspect”, which elements are active? It could be that all tabs are inactive in that state and you are required to clear the search, by clicking the “x”, to proceed as normal. However it might be nicer if clicking any of the tabs would immediately clear the search and open the panel. Clicking on a greyed-out tab would display as normal. But clicking on a highlighted tab would not only clear search but would open such that all sections are collapsed except for the ones containing matched items. That way you don’t need to add anything new for “go to original location” as mentioned earlier.

In #71185#802763, @Harley wrote:
It could be that all tabs are inactive in that state and you are required to clear the search, by clicking the “x”, to proceed as normal.

Maybe search results could be an entirely new tab that only pops up whenever there is entered text in the box.
Clearing the box "hides" the tab and entering new text switches to it again

> In #71185#802763, @Harley wrote: > It could be that all tabs are inactive in that state and you are required to clear the search, by clicking the “x”, to proceed as normal. Maybe search results could be an entirely new tab that only pops up whenever there is entered text in the box. Clearing the box "hides" the tab and entering new text switches to it again

Added subscriber: @moisessalvador

Added subscriber: @moisessalvador

Not related to this task, but having search on the Preferences would be great too

Not related to this task, but having search on the Preferences would be great too

@Harley apparently it’s not explained clearly enough in description, but the idea is that searching will always search across all properties tabs. You’ll only see the results from one tab at a time, and the highlighting tabs will communicate to users which other tabs also contain results.

@Harley apparently it’s not explained clearly enough in description, but the idea is that searching will always search across all properties tabs. You’ll only see the results from one tab at a time, and the highlighting tabs will communicate to users which other tabs also contain results.

@moisessalvador Yes, thet's the idea too. Once we have it working for Properties, it should be easy to do the same for Preferences.

@moisessalvador Yes, thet's the idea too. Once we have it working for Properties, it should be easy to do the same for Preferences.

Added subscriber: @mercyberg

Added subscriber: @mercyberg

@WilliamReynish Since you say we only show results from one tab at a time, presumably we have to highlight the active tab somehow. How would you display the active tab (highlighted) if it contains no results (greyed out)? It would be confusing to highlight the active tab when it doesn't contain results, but if it's not highlighted then it will be unclear which tab the user is searching through.

I like @DuarteRamos's idea of opening a designated search tab so we don't run into this ambiguity. Then there is the added benefit of being able to show an aggregation of results across tabs.

@WilliamReynish Since you say we only show results from one tab at a time, presumably we have to highlight the active tab somehow. How would you display the active tab (highlighted) if it contains no results (greyed out)? It would be confusing to highlight the active tab when it doesn't contain results, but if it's not highlighted then it will be unclear which tab the user is searching through. I like @DuarteRamos's idea of opening a designated search tab so we don't run into this ambiguity. Then there is the added benefit of being able to show an aggregation of results across tabs.

I am picturing a flow like this, which doesn't actually require a dedicated search tab, just a temporary search state:

{image uri=https:*i.imgur.com/kK5PFjL.jpg, width=100%, href=https:*i.imgur.com/kK5PFjL.jpg}

I am picturing a flow like this, which doesn't actually require a dedicated search tab, just a temporary search state: {image uri=https:*i.imgur.com/kK5PFjL.jpg, width=100%, href=https:*i.imgur.com/kK5PFjL.jpg}

Added subscriber: @lsscpp

Added subscriber: @lsscpp
Julian Eisel was unassigned by Hans Goudey 2020-06-13 01:47:06 +02:00
Hans Goudey self-assigned this 2020-06-13 01:47:06 +02:00
Member

Added subscriber: @JulianEisel

Added subscriber: @JulianEisel

Removed subscriber: @antoniov

Removed subscriber: @antoniov

Added subscriber: @slowk1d

Added subscriber: @slowk1d

Added subscriber: @cschumann

Added subscriber: @cschumann

Added subscriber: @ManuelGrad

Added subscriber: @ManuelGrad

property_search_proposal.jpg

In order to not spam the Property Search Status thread on devtalk i'll post this here, hope thats ok.

Can we please hide the the unrelevant sections? I really dislike the idea that we'd have to scroll after a search and i don't think this feature was only intended as a learning aid (as in showing the user where to find stuff) but also to boost working speed. Many users are concerned with the need to scroll too much in the properties window and it was said once the search feature is implemented it will be better – GREAT!
After seeing Pablos mock-up i feel a bit disappointed though. The mock-up feels messy and overwhelming for something that should save you time.
It for sure doesnt look like it enables fast working. For that, we would need the smallest possible travel distance for the mouse, little to no scrolling, and no useless display of information/sections the user doesnt need.

My proposal would be something like this:

  • hide non-relevant sections
  • dim more than 50%
  • make it more clear what the search result is; use another accent color for search, otherwise its confusing with the same blue as the sliders and checkboxes
![property_search_proposal.jpg](https://archive.blender.org/developer/F8731675/property_search_proposal.jpg) In order to not spam the Property Search Status thread on devtalk i'll post this here, hope thats ok. Can we please hide the the unrelevant sections? I really dislike the idea that we'd have to scroll after a search and i don't think this feature was only intended as a learning aid (as in showing the user where to find stuff) but also to boost working speed. Many users are concerned with the need to scroll too much in the properties window and it was said once the search feature is implemented it will be better – GREAT! After seeing Pablos mock-up i feel a bit disappointed though. The mock-up feels messy and overwhelming for something that should save you time. It for sure doesnt look like it enables fast working. For that, we would need the smallest possible travel distance for the mouse, little to no scrolling, and no useless display of information/sections the user doesnt need. My proposal would be something like this: - hide non-relevant sections - dim more than 50% - make it more clear what the search result is; use another accent color for search, otherwise its confusing with the same blue as the sliders and checkboxes

@ManuelGrad I found your "Proposal 1" a really good compromise.

@ManuelGrad I found your "Proposal 1" a really good compromise.
Member

If we only display matching panels, does it really make sense to highlight their headers? It doesn't serve much of a purpose then.

For the future, some way to highlight the buttons themselves might be nice-- maybe an outline. Highlighting the labels is nice, but also a bit odd if the button itself doesn't change.

If we only display matching panels, does it really make sense to highlight their headers? It doesn't serve much of a purpose then. For the future, some way to highlight the buttons themselves might be nice-- maybe an outline. Highlighting the labels is nice, but also a bit odd if the button itself doesn't change.

Added subscriber: @Ivo

Added subscriber: @Ivo

2ct: My first encounter with the mock-ups taught me that highlighting the headers makes them less recognizable (I found that it takes me quite some effort to find the highlighted headers from the proposals in the original view on the left). Otherwise, “proposal 1” worked for me. Small suggestion still: could the non-matching tabs be hidden as well?

Great initiative overall!

2ct: My first encounter with the mock-ups taught me that highlighting the headers makes them less recognizable (I found that it takes me quite some effort to find the highlighted headers from the proposals in the original view on the left). Otherwise, “proposal 1” worked for me. Small suggestion still: could the non-matching tabs be hidden as well? Great initiative overall!
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Member

Since property search has been almost completely implemented, this design task isn't relevant anymore.

For the record, we decided not to use an approach where some buttons were completely hidden from the layouts because it's very hard to support that properly in the general case for every layout.
For example, when one button matches, which of the buttons around it are removed and which are kept? Beyond the most simple of cases, this is a near-impossible problem.
It also removes too much of the context from layouts. Often a button only has meaning relative to other buttons around it.

We also decided to show all panels but set expansion based on whether each panel had a search result. This ensures that users have complete context of where panels are, and easy access to other
information while the search is active.

Since property search has been almost completely implemented, this design task isn't relevant anymore. For the record, we decided not to use an approach where some buttons were completely hidden from the layouts because it's very hard to support that properly in the general case for every layout. For example, when one button matches, which of the buttons around it are removed and which are kept? Beyond the most simple of cases, this is a near-impossible problem. It also removes too much of the context from layouts. Often a button only has meaning relative to other buttons around it. We also decided to show all panels but set expansion based on whether each panel had a search result. This ensures that users have complete context of where panels are, and easy access to other information while the search is active.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
15 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#71185
No description provided.