Page MenuHome

UI: Improve property editor header layout
AbandonedPublic

Authored by Hans Goudey (HooglyBoogly) on Oct 16 2020, 4:31 PM.

Details

Summary

One of the most common complaints about property search has been about
the alignment of the search button in the header. Also, the "pin" button
was moved away from the context labels, which really didn't make sense.
After some discussion with the UI team and others, there was consesus
that the design proposed here would work better.

The changes are:

  1. The context "breadcrumbs" panel is removed. The impression here is that the first items in this context path are not serving an important purpose anymore, that they are redundant and take up space.
  2. Instead, the last item in the context path is moved as a label to the header, which is more similar to how it was before property search anyway, just without the redundant icons and first "breadcrumbs."
  3. The search field is moved to the right, where there is no visual confusion about whether it is aligned to the center of the area or panels region.

In order to accomplish this, the name of the last item in the editor's
context path is added as a field to RNA.

Unfortunately, the UI layout system does not handle this design well at
all, so some special changes are needed here, mainly using double "split-
header" used for the top bar. This requires some tweaks in area.c and
buttons_ops.c to handle the new region properly.

Diff Detail

Repository
rB Blender
Branch
property-search-header-design (branched from master)
Build Status
Buildable 10757
Build 10757: arc lint + arc unit

Event Timeline

Hans Goudey (HooglyBoogly) requested review of this revision.Oct 16 2020, 4:31 PM
Hans Goudey (HooglyBoogly) created this revision.
  • Working button alignment code
  • Remove debugging changes
  • Versioning code and subversion bump
  • Improve the hiding for different region widths
  • Improve some comments
Hans Goudey (HooglyBoogly) retitled this revision from [WIP] UI: Improve property editor header layout to UI: Improve property editor header layout.Oct 21 2020, 7:09 AM
Hans Goudey (HooglyBoogly) edited the summary of this revision. (Show Details)
release/scripts/startup/bl_ui/space_properties.py
39

These checks work well on my computer on different resolution scales, but I'm not sure its the proper check for higher pixel density displays. This seems like the way this information is accessed through python though.

Hi @Hans Goudey (HooglyBoogly) is there a consensus among the UI team about this proposal?

For comparison this the 2.83, master and the patch panels side-by-side:

This is the solution proposed by Pablo and I believe Francesco. There's an alternative proposal which looks like this:

We need @Pablo Vazquez (pablovazquez) to give feedback and make a decision together.

Dalai Felinto (dfelinto) requested changes to this revision.Oct 21 2020, 11:20 AM

The "bread crumbs" are super important. People can find ways to better communicate the context, but to remove them from the editor is not a design decision that can be made lightly.

This revision now requires changes to proceed.Oct 21 2020, 11:20 AM

This is the solution proposed by Pablo and I believe Francesco.

Did they propose to remove the bread crumbs altogether?

There's an alternative proposal which looks like this:

We need @Pablo Vazquez (pablovazquez) to give feedback and make a decision together.

This is a no-brainer and should be in from day one I think. In fact it is what was proposed in T71185 as well.

The discussion on how to make the header more compact seems to be a separate issue (and the one presented here).

The pin is attached with the search, it looks like "pinning the search result". While resizing, it stays with the search, which reinforces this feeling.
Splitting the header into two halves, with label cropping and search disappearing (if there is not enough space) - it looks strange, it is not used in Blender, the user expects scrolling.

I think "bread crumbs" are important, for example Armature.003 > Armature.002 > Bone.001.

Did they propose to remove the bread crumbs altogether?

Reading back the chat log - Removing this was proposed by Pablo and Harley, and even voted for by Hans and Nathan. Others didn't voice an opinion.
You could argue that the context this is supposed to add isn't that useful really. Might be misleading even - the data-block can be used by many other data-blocks, there can be many more data-paths a data-block is in.

I don't mind it too much and leave it up to the team.
However it does seem like we shouldn't make such a change that late in the release cycle. We shouldn't risk having to revert something in bcon3, just because things got rushed at the end and not user tested long enough. That's why I also made the call to not push any further Outliner changes that late.

There is redundancy in the breadcrumbs, for example for meshes it's not so useful to have the mesh both in the breadcrumbs and a datablock selector. But this patch does not solve that redundancy, it still repeats the mesh datablock and leaves out the object, which is the interesting part. When you use the mesh datablock selector, you are changing the object, and I think there should be some indication of that.

I think simply moving the pin icon to the breadcrumbs again is better than what is being proposed here, and seems like the right solution for 2.91 to me.

There could be a more compact design. Maybe the pin icon could be next to the datablock selector, and then only the second to last item from the breadcrumbs could be shown. There is no datablock selector for scenes or view layers, so those would need to be added.

Here's another alternative I'd actually prefer (if we decide to make the change to crop the data-path): It makes the label and the icon a clickable field together, moves the icon to the left (like usual for such clickable elements) and I think behaves nicer on area resizing.

I personally prefer this:

Search is nicely aligned, context pinning is next to the context name, and breadcrumbs only show the appropriate datablock (which could expand the full path on mouse over).

However, since we are already at bcon3, let's go with the more conservative option and keep this in the back of our heads for a more fleshed out re-design of the breadcrumbs system. Which is something we need to do anyway as more parts of Blender will rely on node groups (likely nested) in the future.

+1

Hans Goudey (HooglyBoogly) planned changes to this revision.Oct 21 2020, 2:42 PM

I will keep this patch around because it does seem valuable to consider some rearrangement of these labels to avoid redundancy and save space.
For the record, it seems keeping the second to last item in the path would make more sense than keeping the last.

This is a no-brainer and should be in from day one I think. In fact it is what was proposed in T71185 as well.

Honestly the difference between this and the version currently in master is quite subtle, the only large difference is the location of the pin icon, and even if that makes more sense next to the breadcrumbs, I don't think there was any problem with trying it out in the header.

I also agree that Julian's simpler change is a better move for 2.91. Because of limitations in the layout system it can still look quite weird at small widths though.

Actually, I'm going to abandon this. if we get better ways to build layouts in headers I would revisit this, but right now I'm not sure if it's worth the increased complexity and hackiness.