Data-block Selector Design Changes #79959

Closed
opened 2020-08-20 17:32:38 +02:00 by Julian Eisel · 25 comments
Member

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

Screenshot 2020-08-20 at 16.55.00.png Screenshot 2020-08-20 at 16.54.10.png

  • 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.
Screenshot 2020-08-20 at 17.04.46.png

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. Screenshot 2020-08-20 at 15.20.13.png
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.
Screenshot 2020-08-20 at 16.03.41.png

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).
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 ![Screenshot 2020-08-20 at 16.55.00.png](https://archive.blender.org/developer/F8796937/Screenshot_2020-08-20_at_16.55.00.png) ![Screenshot 2020-08-20 at 16.54.10.png](https://archive.blender.org/developer/F8796933/Screenshot_2020-08-20_at_16.54.10.png) * **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. ![Screenshot 2020-08-20 at 17.04.46.png](https://archive.blender.org/developer/F8796968/Screenshot_2020-08-20_at_17.04.46.png) 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. ![Screenshot 2020-08-20 at 15.20.13.png](https://archive.blender.org/developer/F8796998/Screenshot_2020-08-20_at_15.20.13.png) 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. ![Screenshot 2020-08-20 at 16.03.41.png](https://archive.blender.org/developer/F8797000/Screenshot_2020-08-20_at_16.03.41.png) **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).
Author
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Author
Member

Added subscriber: @JulianEisel

Added subscriber: @JulianEisel
Julian Eisel changed title from Data-block selector design changes to Data-block Selector Design Changes 2020-08-20 17:34:22 +02:00
Author
Member

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

Note that there is a partial implementation of this in [D8554](https://archive.blender.org/developer/D8554).

Added subscriber: @antoniov

Added subscriber: @antoniov

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

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

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

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.

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.

Added subscriber: @EvandroFerreiradaCosta

Added subscriber: @EvandroFerreiradaCosta

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:
image.png
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.
image.png
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.
image.png
.
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:
image.png

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"
image.png
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.

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: ![image.png](https://archive.blender.org/developer/F8831204/image.png) 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. ![image.png](https://archive.blender.org/developer/F8831237/image.png) 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. ![image.png](https://archive.blender.org/developer/F8831245/image.png) . **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: ![image.png](https://archive.blender.org/developer/F8834352/image.png) 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**" ![image.png](https://archive.blender.org/developer/F8831388/image.png) 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.

Added subscriber: @hlorus

Added subscriber: @hlorus

Added subscriber: @Leroy-Xie

Added subscriber: @Leroy-Xie

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.

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.
Contributor

Added subscriber: @RedMser

Added subscriber: @RedMser
Member

Added subscriber: @Imaginer

Added subscriber: @Imaginer

This issue was referenced by blender/cycles@4bef4bf1be

This issue was referenced by blender/cycles@4bef4bf1be6f2c8f01223688503dd197edc1ff6c

This issue was referenced by 2250b5cefe

This issue was referenced by 2250b5cefee7f7cce31e388cb83515543ffe60f0
Author
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Julian Eisel self-assigned this 2020-12-18 20:03:49 +01:00
Author
Member

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.

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.

Added subscriber: @Vyach

Added subscriber: @Vyach

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.

61015448.png

61020650.png

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.
61000847.png

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. ![61015448.png](https://archive.blender.org/developer/F9517193/61015448.png) ![61020650.png](https://archive.blender.org/developer/F9517192/61020650.png) 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. ![61000847.png](https://archive.blender.org/developer/F9517201/61000847.png)
Author
Member

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.

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.

Added subscriber: @IliaKovalev

Added subscriber: @IliaKovalev

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

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

Added subscriber: @YegorSmirnov

Added subscriber: @YegorSmirnov

@JulianEisel okay, will do,

@JulianEisel okay, will do,
Thomas Dinges added this to the 2.92 milestone 2023-02-08 16:16:03 +01:00
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
12 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#79959
No description provided.