Blender Git Commit Log

Git Commits -> Revision 2250b5c

Revision 2250b5c by Julian Eisel (master)
December 18, 2020, 17:28 (GMT)
UI: Redesigned data-block selectors

The previous design is rather old and has a couple of problems:

* 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 there 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 obvious 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.

This patch does the following changes:

* Adds a menu to the right of the name button to access all kinds of operations
(create, delete, unlink, user management, library overrides, etc).
* Make good use of the "disabled hint" for tooltips, to explain why buttons are
disabled. The UI team wants to establish this as a good practise.
* Use superimposed icons for duplicate and unlink, rather than extra buttons
(uses less space, looks less distracting and is a nice + consistent design
language).
* Remove fake user and user count button, they are available from the menu now.
* Support tooltips for superimposed icons (committed mouse hover feedback to
master already).
* Slightly increase size of the name button - it was already a bit small
before, and the move from real buttons to superimposed icons reduces usable
space for the name itself.
* More clearly differentiate between duplicate and creating a new data-block.
The latter is only available in the menu.
* Display library status icon on the left (linked, missing library, overridden,
asset)
* Disables "Make Single User" button - in review we weren't sure if there are
good use-cases for it, so better to see if we can remove it.

Note that I do expect some aspects of this design to change still. I think some
changes are problematic, but others disagreed. I will open a feedback thread on
devtalk to see what others think.

Differential Revision: https://developer.blender.org/D8554

Reviewed by: Bastien Montagne

Design discussed and agreed on with the UI team, also see T79959.

Commit Details:

Full Hash: 2250b5cefee7f7cce31e388cb83515543ffe60f0
Parent Commit: 7bee148
Lines Changed: +1467, -684

1 Added Path:

/source/blender/editors/util/ed_util_ops.c (+155, -0) (View)

35 Modified Paths:

/intern/cycles/blender/addon/ui.py (+1, -1) (Diff)
/release/scripts/startup/bl_ui/properties_material.py (+1, -1) (Diff)
/release/scripts/startup/bl_ui/properties_world.py (+1, -1) (Diff)
/release/scripts/startup/bl_ui/space_dopesheet.py (+1, -1) (Diff)
/source/blender/editors/include/ED_util.h (+2, -1) (Diff)
/source/blender/editors/include/UI_interface.h (+24, -10) (Diff)
/source/blender/editors/interface/interface.c (+86, -57) (Diff)
/source/blender/editors/interface/interface_context_menu.c (+1, -1) (Diff)
/source/blender/editors/interface/interface_handlers.c (+40, -11) (Diff)
/source/blender/editors/interface/interface_ops.c (+1, -0) (Diff)
/source/blender/editors/interface/interface_region_tooltip.c (+43, -25) (Diff)
/source/blender/editors/interface/interface_templates.c (+680, -406) (Diff)
/source/blender/editors/render/render_intern.h (+3, -0) (Diff)
/source/blender/editors/render/render_ops.c (+3, -0) (Diff)
/source/blender/editors/render/render_shading.c (+177, -59) (Diff)
/source/blender/editors/screen/screen_ops.c (+0, -1) (Diff)
/source/blender/editors/space_action/action_data.c (+117, -61) (Diff)
/source/blender/editors/space_action/action_intern.h (+1, -0) (Diff)
/source/blender/editors/space_action/action_ops.c (+2, -0) (Diff)
/source/blender/editors/space_api/spacetypes.c (+2, -0) (Diff)
/source/blender/editors/space_clip/clip_buttons.c (+1, -0) (Diff)
/source/blender/editors/space_file/file_panels.c (+7, -2) (Diff)
/source/blender/editors/space_image/image_buttons.c (+2, -1) (Diff)
/source/blender/editors/space_nla/nla_buttons.c (+2, -1) (Diff)
/source/blender/editors/space_node/drawnode.c (+78, -16) (Diff)
/source/blender/editors/util/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/util/ed_util.c (+0, -21) (Diff)
/source/blender/makesrna/intern/rna_ui_api.c (+7, -2) (Diff)
/source/blender/modifiers/intern/MOD_displace.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_nodes.cc (+1, -0) (Diff)
/source/blender/modifiers/intern/MOD_volume_displace.cc (+2, -1) (Diff)
/source/blender/modifiers/intern/MOD_warp.c (+11, -1) (Diff)
/source/blender/modifiers/intern/MOD_wave.c (+11, -1) (Diff)
/source/blender/modifiers/intern/MOD_weightvg_util.c (+1, -0) (Diff)
/source/blender/windowmanager/intern/wm_operator_type.c (+1, -1) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021