Page MenuHome

Data-block Selector Design Changes
Closed, ResolvedPublicDESIGN

Description

NOTE: This task does not cover the search menu of the data-block selector. There were ideas for this in the past, but they are not covered here.

Motivation

  • Scalability: The current solution of adding little icon buttons next to the data-block name field doesn't scale well. It only works if there's a small number of operations. We need to be able to place more items for better data-block management. Especially with the introduction of library overrides.
  • Discoverability: It's not obvious what some of the icons do. They appear and disappear, but it's not clear why some are available at times and others not.
  • Unclear Status: Currently their library status (linked, indirectly linked, broken link, library override) isn't really clear.
  • Unusual behavior: Some of the icon buttons allow Shift or Ctrl clicking to invoke alternative behaviors. This is not a usual pattern in Blender.

Proposal

Operations Menu

Proposal is to add a menu to the right of the name button, containing all available operations.

We can place much more items there, better expose alternative behaviors of operators and actually show the name of operators to help discoverability.

Status indicators

User count and fake user status could be indicated inside the name button.


The icons on the right could remain click able to unlink the data-block and enable fake user for it.
On the left we could also indicate the library status (linked, indirectly linked, broken link, library override) with the already existing icons for that.

Open Questions
  • Which items can be moved to the menu, which should remain accessible without having to open the menu? Having to open a menu to press "New" is slower than what we had before.
  • Hide unavailable items, or gray them out? It's usually a good idea to not hide menu items to not confuse users. Graying them out is preferable (with a hint in the tooltip as to why it's disabled!), but that may result in long menus with most items grayed out. E.g. it seems odd to have operators to manage Library Overrides visible for un-overriden, or even local data-blocks.
  • Which operators exactly to show in the menu? There are multiple data-block operations with similar behavior. E.g. Add vs. Duplicate vs. Make Single-User Copy. Or Deleting vs. forcing single user (so the data-block isn't written to files).

Event Timeline

Julian Eisel (Severin) renamed this task from Data-block selector design changes to Data-block Selector Design Changes.Aug 20 2020, 5:32 PM
Julian Eisel (Severin) changed the task status from Needs Triage to Confirmed.
Julian Eisel (Severin) created this task.
Julian Eisel (Severin) updated the task description. (Show Details)
Julian Eisel (Severin) changed the subtype of this task from "Report" to "Design".

Note that there is a partial implementation of this in D8554.

IMHO the X must be available outside menu. This is used a lot.

If this is anything like the modifier header changes it's going to be hard to find a good balance of exposing common operations, leaving room for the name, and keeping the interface intuitive.

One consideration: It's nice that currently the number of users button is close to the fake user button. That clarifies the relation between the. So personally I'm not too sure about putting the number of users to the left of the name.

IMO either the duplicate or the plus button should be exposed. Also, I'm not sure we support this in most situations, but maybe we can show and hide icons as the template's width changes.

A fact of the matter is that some buttons are used much more frequently than others, such as New Material (which should be called Duplicate Material) and Unlink, and therefore IMO should be always visible in order to be accessible with a single click (instead of hidden in a menu which would require an additional click for every Material you want to access)... And one button, the "Fake User", is basically required to be exposed at all times due to blender's unintuitive behavior of data-block users (if even with this exposed new blender users are confused, imagine if its hidden).
.
Scalability: I don't see why can't we have a dynamic solution. This problem only arises if the window size or Resolution Scaling (in Edit>Preferences>Interface) is smaller than a certain point. Solved by the proposals below of a dynamic change to the interface.
1- If the properties region horizontal pixel length is reduced past a certain threshold (be it due to window size or Resolution Scaling), the most commonly used FakeUser/NewMaterial/Unlink buttons are then replaced by a "Down Arrow" button, which opens the menu suggested in the task:


Or
2-If the properties region is reduced past a certain threshold, replace the common buttons with a "Side Arrow Left" which when clicked expands the three icons to the left... and works as a toggle, so that one click expands, and keeps it open indefinitely, with now a "Side Arrow Right" button that if clicked retracts them back.

Or
3-Transfer the most commonly used buttons to the list above. This would free space for the Material name field below (allowing longer names to be read there) and would also allow Shift+MouseDrag functionality for quickly mass Fake-Usering, Material Duplication or Unlinkage of long lists of materials.

.
Discoverability : I see absolutely no problem with some buttons appearing or disappearing, depending on which conditions are met. This is a matter of the user understanding the operation, which happens either by experience (learning/trial-error), or by being told on the spot by means of clear tooltips, as mentioned below.
If the user doesn't understand the operation (ex: clicking on "Create Library Override" will change it's button to "Make Local", since this is now the only operation possible) keeping the buttons visible at all times doesn't solve the issue, as he still doesn't understand the functions or why one button became grey/unclickable and the other didnt.
.
Unclear Status: The problem with Fake User being unintuitive for new users is a global blender issue, which goes beyond this material discussion. Until this is reviewed, it and the rest of the buttons are explained by tooltips, which as far as I can tell, are doing a great job so far (much better than 2.7x)
But they could maybe be improved, because in blender: the tooltips still only explain the button action/function, not what the operation is about.

Example: "Fake user" button tooltip is currently:
"Fake User. Save this data-block even if it has no users".
But could be improved to:
"Fake User. Save this data-block even if it has no users.
A "user" is an object or mesh that is currently linked to the data-block (using it). If nothing is linked to the data-block, it is considered "orphan" and automatically deleted from the file on reload. If you want to preserve the orphan data-block in the file, you can give it a "Fake User". This prevents it from being deleted on reload.
".

Example 2: the Linked buttons only appear if the user purposefully links a data-block, which indicates he knows what is a Linking operation, or if he opens a file with such a linked data-block.
The "Linked data-block" button tooltip is:
"Direct linked library data-block, click to make local, Shift+Click to create a library override".
Could be improved to:
"Direct linked library data-block, click to make local, Shift+Click to create a library override.
A linked data-block is a piece of blender data brought over from another file and that can only be edited there (changes to linked data are lost on reload). Making it local creates an independent copy of the data-block that can be edited locally. A library override creates a local editable version of this data-block that retains the linked property of non-edited parameters
"

A suggestion is that after 2.5 seconds of hovering over a button, a floating "?" shortcut appears, that when hovered over opens a floating pop up with a brief explanation of what the button's operation does, with images or gifs if necessary, such as the examples above.
Maybe the 1 second hover tooltip could still be the one that is already there, and then after another 1.5s the secondary, more descriptive, tooltip appears, or the "?" icon for the tooltip.
Another option is that the "?" icon when hovered/clicked opens the browser with the Manual page related to the button operation.
The first Icon of the icon list if I'm not mistaken is already the Question Icon:

Also, I'm sure that "New Material" button should be renamed to something else. Because when you have an Empty material slot, you can press the gigantic +NEW button which indeed does create a new DEFAULT material with default parameter values. Yet when you press "New Material" icon you are actually creating a new material which is a DUPLICATE of the selected material, it's not a new DEFAULT material. Therefore these two operations should have different names and different tooltips. Ex: "New Default Material" and "New Duplicate Material" OR "New Material" and "Duplicate Material" OR "New Material" and "New Copied Material"


Also, when you have the same material twice, the button of "Number of Users" acts exactly the same as the "New/Duplicate Material", maybe this could be improved by making the Users button View-Only (non-clickable) everywhere, and instead have a Duplicate button everywhere there are data-blocks (Such as the Object Data tab). The same behavior of having a "duplicate" button and the "number of users" buttons performing the exact same also happens in other places, such as the Particle window.

Unusual behavior: We can actually Alt+Click almost any button or field in Blender in order to perform the same change/operation for all selected objects, so having a modifier+click is not new. Having a specific Shift or Ctrl click for such a specific operation (linked libraries) doesn't appear to be so problematic, since a user who makes use of this feature is most probably not a new user. But for ease of use it could be separated into two buttons, "Make Local" and "Create Override", and once you click "Create Override" it's button disappears and only the "Make Local" remains.

The new UI design almost all commonly used functions are hidden (folding), which is really inconvenient. Please do not make change UI, this is not everyone likes, the 2.8 new toolbar and layout top bar, I almost never clicked. The industry standard is not the best, it was a few decades ago design.

Julian Eisel (Severin) closed this task as Resolved.EditedDec 18 2020, 8:03 PM
Julian Eisel (Severin) claimed this task.

This is now in master.

Note that the proposal isn't exactly what we ended up going for. Check the release notes for details: https://wiki.blender.org/wiki/Reference/Release_Notes/2.92/User_Interface#Redesigned_Data-block_Selector.

Hello guys, I`ve noticed this change today.
I understand motivation.
But now I do not have even local overview, what nodes protected or not.

Orphan data will not show protected nodes until they have users.
And Blender File outliner do not show this info too. So I can`t manage datablock-protection fast anumore.

There is a thread for user feedback on devtalk: https://devtalk.blender.org/t/redesigned-data-block-selector-feedback-thread
Please use that, I follow it actively.

having to use drop-down menu, instead of one-clicking frequently used operations, really slows down the work