Blender Git Loki
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)
/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)