Blender Git Commit Log

Git Commits -> Revision 219049b

Revision 219049b by Julian Eisel (master)
April 17, 2020, 15:00 (GMT)
UI: Better split layout support for checkboxes

Makes the following layout changes possible:
{F8473498} {F8473499} {F8473502}

The next commit will contain many layout changes to make good use of
these new possibilities. The result should be more consistent, easier to
read and should give a more organized impression. Additionally, it
should be possible to replace many sub-panels with compacter layouts.

Main changes:
* Checkboxes now respect the property split layouts
* Add support for row and column headers (i.e.
`uiLayout.column(heading="Foo")`, `uiLayout.row(heading="Bar")`). If the
first property added to this layout doesn't insert anything into the label
split column, the heading is inserted there. Otherwise, it's inserted as own
item.
* Add support for manually inserting decorators for an existing item
(`uiLayout.prop_decorator()`). That way layout creators can manually insert
this, which was the only way I saw to support property split layouts with a
checkbox before the actual property. {F8471883}
* Autogenerated layouts for operator properties look bad if there are only
checkboxes (which only use half the region width). So before creating the
layout, we iterate over visible properties and disable split layout if all
are booleans. I think this is fine, if needed we could also add layout hints
to operators.
* `uiTemplateOperatorPropertyButs()` now handles macros itself, the caller
used to be responsible for this. Code that didn't handle these so far never
used macros I think, so this change should be invisible.
* Remove manual property split layout from autogenerated operator properties
layout.
* Padding of checkboxes is tweaked to make their label visually more connected
to the checkboxes.
* Support split layout for menus (should work for `uiLayout.menu()`,
`.operator_menu_enum()`, `.prop_menu_enum()`, maybe more)

Maniphest Task: https://developer.blender.org/T65965

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

Reviewed by: Brecht Van Lommel, William Reynish, Pablo Vazques

Commit Details:

Full Hash: 219049bb3b763b58e71fdf0091309136e6b513a8
Parent Commit: 20614d3
Lines Changed: +604, -299

10 Modified Paths:

/source/blender/editors/include/UI_interface.h (+17, -5) (Diff)
/source/blender/editors/interface/interface.c (+21, -4) (Diff)
/source/blender/editors/interface/interface_anim.c (+43, -10) (Diff)
/source/blender/editors/interface/interface_intern.h (+5, -0) (Diff)
/source/blender/editors/interface/interface_layout.c (+232, -57) (Diff)
/source/blender/editors/interface/interface_templates.c (+238, -189) (Diff)
/source/blender/editors/interface/interface_utils.c (+4, -12) (Diff)
/source/blender/editors/interface/interface_widgets.c (+14, -9) (Diff)
/source/blender/makesrna/intern/rna_ui_api.c (+28, -2) (Diff)
/source/blender/windowmanager/intern/wm_operators.c (+2, -11) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021