RNA: UILayout.split(..) 'percentage' to 'factor'

Misleading name since it's between 0..1.

Use as a keyword argument to prepare for keyword only args.

Also document that leaving unset has special behavior.
This commit is contained in:
Campbell Barton 2018-08-28 12:38:54 +10:00
parent e9fb2feb2e
commit d3a72033f6
21 changed files with 132 additions and 129 deletions

View File

@ -802,28 +802,28 @@ class CYCLES_RENDER_PT_denoising(CyclesButtonsPanel, Panel):
layout.use_property_split = False
split = layout.split(percentage=0.5)
split = layout.split(factor=0.5)
split.label(text="Diffuse")
col = split.column()
row = col.row(align=True)
row.prop(cycles_view_layer, "denoising_diffuse_direct", text="Direct", toggle=True)
row.prop(cycles_view_layer, "denoising_diffuse_indirect", text="Indirect", toggle=True)
split = layout.split(percentage=0.5)
split = layout.split(factor=0.5)
split.label(text="Glossy")
col = split.column()
row = col.row(align=True)
row.prop(cycles_view_layer, "denoising_glossy_direct", text="Direct", toggle=True)
row.prop(cycles_view_layer, "denoising_glossy_indirect", text="Indirect", toggle=True)
split = layout.split(percentage=0.5)
split = layout.split(factor=0.5)
split.label(text="Transmission")
col = split.column()
row = col.row(align=True)
row.prop(cycles_view_layer, "denoising_transmission_direct", text="Direct", toggle=True)
row.prop(cycles_view_layer, "denoising_transmission_indirect", text="Indirect", toggle=True)
split = layout.split(percentage=0.5)
split = layout.split(factor=0.5)
split.label(text="Subsurface")
col = split.column()
row = col.row(align=True)
@ -974,7 +974,7 @@ class CYCLES_PT_context_material(CyclesButtonsPanel, Panel):
row.operator("object.material_slot_select", text="Select")
row.operator("object.material_slot_deselect", text="Deselect")
split = layout.split(percentage=0.65)
split = layout.split(factor=0.65)
if ob:
split.template_ID(ob, "active_material", new="material.new")

View File

@ -182,7 +182,7 @@ if __name__ == "__main__":
prop(data='context.scene.render', property='stamp_font_size', text='Font Size')
]
],
split(percentage=0.2)[
split(factor=0.2)[
prop(data='context.scene.render', property='use_stamp_note', text='Note'),
row()[
active(expr='context.scene.render.use_stamp_note'),

View File

@ -39,7 +39,7 @@ def _indented_layout(layout, level):
level = 0.0001 # Tweak so that a percentage of 0 won't split by half
indent = level * indentpx / bpy.context.region.width
split = layout.split(percentage=indent)
split = layout.split(factor=indent)
col = split.column()
col = split.column()
return col
@ -103,7 +103,7 @@ def draw_km(display_keymaps, kc, km, children, layout, level):
# "Add New" at end of keymap item list
subcol = _indented_layout(col, kmi_level)
subcol = subcol.split(percentage=0.2).column()
subcol = subcol.split(factor=0.2).column()
subcol.operator("wm.keyitem_add", text="Add New", text_ctxt=i18n_contexts.id_windowmanager,
icon='ZOOMIN')
@ -167,7 +167,7 @@ def draw_kmi(display_keymaps, kc, km, kmi, layout, level):
if kmi.show_expanded:
box = col.box()
split = box.split(percentage=0.4)
split = box.split(factor=0.4)
sub = split.row()
if km.is_modal:
@ -349,7 +349,7 @@ def draw_filtered(display_keymaps, filter_type, filter_text, layout):
# "Add New" at end of keymap item list
col = _indented_layout(layout, 1)
subcol = col.split(percentage=0.2).column()
subcol = col.split(factor=0.2).column()
subcol.operator("wm.keyitem_add", text="Add New", icon='ZOOMIN')
return True
@ -386,7 +386,7 @@ def draw_keymaps(context, layout):
# layout.context_pointer_set("keyconfig", wm.keyconfigs.active)
# row.operator("wm.keyconfig_remove", text="", icon='X')
row.separator()
rowsub = row.split(align=True, percentage=0.33)
rowsub = row.split(factor=0.33, align=True)
# postpone drawing into rowsub, so we can set alert!
col.separator()

View File

@ -165,7 +165,7 @@ def draw(layout, context, context_member, property_type, use_edit=True):
box = row.box()
if use_edit:
split = box.split(percentage=0.75)
split = box.split(factor=0.75)
row = split.row(align=True)
else:
row = box.row(align=True)

View File

@ -42,7 +42,7 @@ class ConstraintButtonsPanel:
def space_template(layout, con, target=True, owner=True):
if target or owner:
split = layout.split(percentage=0.2)
split = layout.split(factor=0.2)
split.label(text="Space:")
row = split.row()
@ -85,7 +85,7 @@ class ConstraintButtonsPanel:
row.label()
row.prop(con, "pole_angle")
split = layout.split(percentage=0.33)
split = layout.split(factor=0.33)
col = split.column()
col.prop(con, "use_tail")
col.prop(con, "use_stretch")
@ -183,12 +183,12 @@ class ConstraintButtonsPanel:
row = layout.row()
row.label(text="Axis Ref:")
row.prop(con, "reference_axis", expand=True)
split = layout.split(percentage=0.33)
split = layout.split(factor=0.33)
split.row().prop(con, "use_location")
row = split.row()
row.prop(con, "weight", text="Weight", slider=True)
row.active = con.use_location
split = layout.split(percentage=0.33)
split = layout.split(factor=0.33)
row = split.row()
row.label(text="Lock:")
row = split.row()
@ -197,12 +197,12 @@ class ConstraintButtonsPanel:
row.prop(con, "lock_location_z", text="Z")
split.active = con.use_location
split = layout.split(percentage=0.33)
split = layout.split(factor=0.33)
split.row().prop(con, "use_rotation")
row = split.row()
row.prop(con, "orient_weight", text="Weight", slider=True)
row.active = con.use_rotation
split = layout.split(percentage=0.33)
split = layout.split(factor=0.33)
row = split.row()
row.label(text="Lock:")
row = split.row()
@ -751,7 +751,7 @@ class ConstraintButtonsPanel:
if con.shrinkwrap_type == 'PROJECT':
row = layout.row(align=True)
row.prop(con, "project_axis", expand=True)
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Axis Space:")
rowsub = split.row()
rowsub.prop(con, "project_axis_space", text="")

View File

@ -328,16 +328,16 @@ class DATA_PT_font(CurveButtonsPanelText, Panel):
text = context.curve
char = context.curve.edit_format
row = layout.split(percentage=0.25)
row = layout.split(factor=0.25)
row.label(text="Regular")
row.template_ID(text, "font", open="font.open", unlink="font.unlink")
row = layout.split(percentage=0.25)
row = layout.split(factor=0.25)
row.label(text="Bold")
row.template_ID(text, "font_bold", open="font.open", unlink="font.unlink")
row = layout.split(percentage=0.25)
row = layout.split(factor=0.25)
row.label(text="Italic")
row.template_ID(text, "font_italic", open="font.open", unlink="font.unlink")
row = layout.split(percentage=0.25)
row = layout.split(factor=0.25)
row.label(text="Bold & Italic")
row.template_ID(text, "font_bold_italic", open="font.open", unlink="font.unlink")

View File

@ -43,7 +43,7 @@ class DATA_PT_context_lattice(DataButtonsPanel, Panel):
lat = context.lattice
space = context.space_data
split = layout.split(percentage=0.65)
split = layout.split(factor=0.65)
if ob:
split.template_ID(ob, "data")
split.separator()

View File

@ -92,7 +92,7 @@ class MESH_UL_shape_keys(UIList):
# key = data
key_block = item
if self.layout_type in {'DEFAULT', 'COMPACT'}:
split = layout.split(0.66, False)
split = layout.split(factor=0.66, align=False)
split.prop(key_block, "name", text="", emboss=False, icon_value=icon)
row = split.row(align=True)
if key_block.mute or (obj.mode == 'EDIT' and not (obj.use_shape_key_edit_mode and obj.type == 'MESH')):
@ -326,7 +326,7 @@ class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
sub.operator("object.shape_key_move", icon='TRIA_UP', text="").type = 'UP'
sub.operator("object.shape_key_move", icon='TRIA_DOWN', text="").type = 'DOWN'
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
row = split.row()
row.enabled = enable_edit
row.prop(key, "use_relative")

View File

@ -226,12 +226,12 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.prop(md, "eval_factor")
layout.label(text="Axis Mapping:")
split = layout.split(percentage=0.5, align=True)
split = layout.split(factor=0.5, align=True)
split.alert = (md.forward_axis[-1] == md.up_axis[-1])
split.label(text="Forward/Up Axis:")
split.prop(md, "forward_axis", text="")
split.prop(md, "up_axis", text="")
split = layout.split(percentage=0.5)
split = layout.split(factor=0.5)
split.label(text="Flip Axis:")
row = split.row()
row.prop(md, "flip_axis")
@ -253,12 +253,12 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
box.row().prop(md, "read_data")
def CAST(self, layout, ob, md):
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
split.label(text="Cast Type:")
split.prop(md, "cast_type", text="")
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
col = split.column()
col.prop(md, "use_x")
@ -325,7 +325,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "vertex_group_factor")
col.prop(md, "use_collapse_triangulate")
row = col.split(percentage=0.75)
row = col.split(factor=0.75)
row.prop(md, "use_symmetry")
row.prop(md, "symmetry_axis", text="")
@ -481,7 +481,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
def LAPLACIANSMOOTH(self, layout, ob, md):
layout.prop(md, "iterations")
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
col = split.column()
col.label(text="Axis:")
@ -567,7 +567,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.operator("object.meshdeform_bind", text="Bind")
def MIRROR(self, layout, ob, md):
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
col = split.column()
col.label(text="Axis:")
@ -833,7 +833,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
col.prop(md, "project_limit", text="Limit")
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
col = split.column()
col.label(text="Axis:")
@ -898,7 +898,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.label(text="Settings are inside the Physics tab")
def SMOOTH(self, layout, ob, md):
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
col = split.column()
col.label(text="Axis:")
@ -956,7 +956,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.label(text="Material Index Offset:")
sub = col.column()
row = sub.split(align=True, percentage=0.4)
row = sub.split(factor=0.4, align=True)
row.prop(md, "material_offset", text="")
row = row.row(align=True)
row.active = md.use_rim
@ -1129,7 +1129,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.prop(md, "start_position_object")
layout.prop_search(md, "vertex_group", ob, "vertex_groups")
split = layout.split(percentage=0.33)
split = layout.split(factor=0.33)
col = split.column()
col.label(text="Texture")
col = split.column()
@ -1176,17 +1176,17 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
def vertex_weight_mask(layout, ob, md):
layout.label(text="Influence/Mask Options:")
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Global Influence:")
split.prop(md, "mask_constant", text="")
if not md.mask_texture:
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Vertex Group Mask:")
split.prop_search(md, "mask_vertex_group", ob, "vertex_groups", text="")
if not md.mask_vertex_group:
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Texture Mask:")
split.template_ID(md, "mask_texture", new="texture.new")
if md.mask_texture:
@ -1415,7 +1415,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.separator()
split = layout.split(0.333)
split = layout.split(factor=0.333)
split.prop(md, "use_vert_data")
use_vert = md.use_vert_data
row = split.row()
@ -1423,7 +1423,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "vert_mapping", text="")
if use_vert:
col = layout.column(align=True)
split = col.split(0.333, align=True)
split = col.split(factor=0.333, align=True)
sub = split.column(align=True)
sub.prop(md, "data_types_verts")
sub = split.column(align=True)
@ -1436,7 +1436,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.separator()
split = layout.split(0.333)
split = layout.split(factor=0.333)
split.prop(md, "use_edge_data")
use_edge = md.use_edge_data
row = split.row()
@ -1444,13 +1444,13 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "edge_mapping", text="")
if use_edge:
col = layout.column(align=True)
split = col.split(0.333, align=True)
split = col.split(factor=0.333, align=True)
sub = split.column(align=True)
sub.prop(md, "data_types_edges")
layout.separator()
split = layout.split(0.333)
split = layout.split(factor=0.333)
split.prop(md, "use_loop_data")
use_loop = md.use_loop_data
row = split.row()
@ -1458,7 +1458,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "loop_mapping", text="")
if use_loop:
col = layout.column(align=True)
split = col.split(0.333, align=True)
split = col.split(factor=0.333, align=True)
sub = split.column(align=True)
sub.prop(md, "data_types_loops")
sub = split.column(align=True)
@ -1476,7 +1476,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.separator()
split = layout.split(0.333)
split = layout.split(factor=0.333)
split.prop(md, "use_poly_data")
use_poly = md.use_poly_data
row = split.row()
@ -1484,7 +1484,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "poly_mapping", text="")
if use_poly:
col = layout.column(align=True)
split = col.split(0.333, align=True)
split = col.split(factor=0.333, align=True)
sub = split.column(align=True)
sub.prop(md, "data_types_polys")

View File

@ -45,7 +45,7 @@ class DATA_PT_context_speaker(DataButtonsPanel, Panel):
speaker = context.speaker
space = context.space_data
split = layout.split(percentage=0.65)
split = layout.split(factor=0.65)
if ob:
split.template_ID(ob, "data")

View File

@ -637,7 +637,7 @@ class GPENCIL_UL_annotation_layer(UIList):
if gpl.lock:
layout.active = False
split = layout.split(percentage=0.2)
split = layout.split(factor=0.2)
split.prop(gpl, "color", text="", emboss=True)
split.prop(gpl, "info", text="", emboss=False)

View File

@ -174,7 +174,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
layout.prop(part, "type", text="Type")
elif not psys.settings:
split = layout.split(percentage=0.32)
split = layout.split(factor=0.32)
col = split.column()
col.label(text="Settings:")
@ -184,7 +184,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
else:
part = psys.settings
split = layout.split(percentage=0.32)
split = layout.split(factor=0.32)
col = split.column()
if part.is_fluid is False:
col.label(text="Settings:")
@ -206,7 +206,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
row.prop(psys, "seed")
if part:
split = layout.split(percentage=0.65)
split = layout.split(factor=0.65)
if part.type == 'HAIR':
if psys is not None and psys.is_edited:
split.operator("particle.edited_clear", text="Free Edit")

View File

@ -249,7 +249,7 @@ class RENDER_PT_stamp(RenderButtonsPanel, Panel):
if rd.use_sequencer:
col.prop(rd, "use_stamp_strip_meta", text="Use Strip Metadata")
row = layout.split(percentage=0.3)
row = layout.split(factor=0.3)
row.prop(rd, "use_stamp_note", text="Note")
sub = row.row()
sub.active = rd.use_stamp_note
@ -749,7 +749,7 @@ class RENDER_PT_eevee_indirect_lighting(RenderButtonsPanel, Panel):
col.prop(props, "gi_visibility_resolution", text="Diffuse Occlusion")
layout.use_property_split = False
row = layout.split(percentage=0.5)
row = layout.split(factor=0.5)
row.alignment = 'RIGHT'
row.label(text="Cubemap Display")
@ -760,7 +760,7 @@ class RENDER_PT_eevee_indirect_lighting(RenderButtonsPanel, Panel):
else:
sub.prop(props, "gi_show_cubemaps", text="", toggle=True, icon='HIDE_ON')
row = layout.split(percentage=0.5)
row = layout.split(factor=0.5)
row.alignment = 'RIGHT'
row.label(text="Irradiance Display")

View File

@ -145,7 +145,7 @@ class TEXTURE_PT_context(TextureButtonsPanel, Panel):
if tex:
col.separator()
split = col.split(percentage=0.2)
split = col.split(factor=0.2)
split.label(text="Type")
split.prop(tex, "type", text="")

View File

@ -756,7 +756,7 @@ class CLIP_PT_tracking_lens(Panel):
clip = sc.clip
row = layout.row(align=True)
sub = row.split(percentage=0.65, align=True)
sub = row.split(factor=0.65, align=True)
if clip.tracking.camera.units == 'MILLIMETERS':
sub.prop(clip.tracking.camera, "focal_length")
else:

View File

@ -1372,7 +1372,7 @@ class IMAGE_PT_view_waveform(ImageScopesPanel, Panel):
sima = context.space_data
layout.template_waveform(sima, "scopes")
row = layout.split(percentage=0.75)
row = layout.split(factor=0.75)
row.prop(sima.scopes, "waveform_alpha")
row.prop(sima.scopes, "waveform_mode", text="")

View File

@ -36,7 +36,7 @@ def act_strip(context):
def draw_color_balance(layout, color_balance):
box = layout.box()
split = box.split(percentage=0.35)
split = box.split(factor=0.35)
col = split.column(align=True)
col.label(text="Lift:")
col.separator()
@ -46,7 +46,7 @@ def draw_color_balance(layout, color_balance):
split.template_color_picker(color_balance, "lift", value_slider=True, cubic=True)
box = layout.box()
split = box.split(percentage=0.35)
split = box.split(factor=0.35)
col = split.column(align=True)
col.label(text="Gamma:")
col.separator()
@ -56,7 +56,7 @@ def draw_color_balance(layout, color_balance):
split.template_color_picker(color_balance, "gamma", value_slider=True, lock_luminosity=True, cubic=True)
box = layout.box()
split = box.split(percentage=0.35)
split = box.split(factor=0.35)
col = split.column(align=True)
col.label(text="Gain:")
col.separator()
@ -537,16 +537,16 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
frame_current = scene.frame_current
strip = act_strip(context)
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
split.label(text="Name:")
split.prop(strip, "name", text="")
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
split.label(text="Type:")
split.prop(strip, "type", text="")
if strip.type != 'SOUND':
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
split.label(text="Blend:")
split.prop(strip, "blend_type", text="")
@ -764,7 +764,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
row.prop(strip, "size_x")
row.prop(strip, "size_y")
elif strip.type == 'COLORMIX':
split = layout.split(percentage=0.35)
split = layout.split(factor=0.35)
split.label(text="Blend Mode:")
split.prop(strip, "blend_effect", text="")
row = layout.row(align=True)
@ -802,7 +802,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
# draw a filename if we have one
if seq_type == 'IMAGE':
split = layout.split(percentage=0.2)
split = layout.split(factor=0.2)
split.label(text="Path:")
split.prop(strip, "directory", text="")
@ -810,26 +810,26 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
elem = strip.strip_elem_from_frame(scene.frame_current)
if elem:
split = layout.split(percentage=0.2)
split = layout.split(factor=0.2)
split.label(text="File:")
split.prop(elem, "filename", text="") # strip.elements[0] could be a fallback
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Color Space:")
split.prop(strip.colorspace_settings, "name", text="")
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Alpha:")
split.prop(strip, "alpha_mode", text="")
layout.operator("sequencer.change_path", icon='FILESEL').filter_image = True
elif seq_type == 'MOVIE':
split = layout.split(percentage=0.2)
split = layout.split(factor=0.2)
split.label(text="Path:")
split.prop(strip, "filepath", text="")
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
split.label(text="Color Space:")
split.prop(strip.colorspace_settings, "name", text="")
@ -1049,7 +1049,7 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
col.label(text="Distortion:")
col.prop(strip, "undistort")
split = layout.split(percentage=0.6)
split = layout.split(factor=0.6)
col = split.column()
col.prop(strip, "use_reverse_frames", text="Reverse")
col.prop(strip, "use_deinterlace")

View File

@ -465,7 +465,7 @@ class USERPREF_PT_system(Panel):
# 1. Column
column = split.column()
colsplit = column.split(percentage=0.85)
colsplit = column.split(factor=0.85)
col = colsplit.column()
col.label(text="General:")
@ -498,7 +498,7 @@ class USERPREF_PT_system(Panel):
# 2. Column
column = split.column()
colsplit = column.split(percentage=0.85)
colsplit = column.split(factor=0.85)
col = colsplit.column()
col.label(text="OpenGL:")
@ -637,14 +637,14 @@ class USERPREF_PT_theme(Panel):
def theme_generic_recurse(data):
col.label(text=data.rna_type.name)
row = col.row()
subsplit = row.split(percentage=0.95)
subsplit = row.split(factor=0.95)
padding1 = subsplit.split(percentage=0.15)
padding1 = subsplit.split(factor=0.15)
padding1.column()
subsplit = row.split(percentage=0.85)
subsplit = row.split(factor=0.85)
padding2 = subsplit.split(percentage=0.15)
padding2 = subsplit.split(factor=0.15)
padding2.column()
colsub_pair = padding1.column(), padding2.column()
@ -689,9 +689,9 @@ class USERPREF_PT_theme(Panel):
row = layout.row()
subsplit = row.split(percentage=0.95)
subsplit = row.split(factor=0.95)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(widget_style, "outline")
@ -700,9 +700,9 @@ class USERPREF_PT_theme(Panel):
colsub.row().prop(widget_style, "inner_sel", slider=True)
colsub.row().prop(widget_style, "roundness")
subsplit = row.split(percentage=0.85)
subsplit = row.split(factor=0.85)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(widget_style, "text")
@ -747,7 +747,7 @@ class USERPREF_PT_theme(Panel):
theme = context.user_preferences.themes[0]
split_themes = layout.split(percentage=0.2)
split_themes = layout.split(factor=0.2)
sub = split_themes.column()
@ -761,7 +761,7 @@ class USERPREF_PT_theme(Panel):
sub.prop(theme, "theme_area", expand=True)
split = layout.split(percentage=0.4)
split = layout.split(factor=0.4)
layout.separator()
layout.separator()
@ -837,9 +837,9 @@ class USERPREF_PT_theme(Panel):
row = col.row()
subsplit = row.split(percentage=0.95)
subsplit = row.split(factor=0.95)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui_state, "inner_anim")
@ -848,9 +848,9 @@ class USERPREF_PT_theme(Panel):
colsub.row().prop(ui_state, "inner_driven_sel")
colsub.row().prop(ui_state, "blend")
subsplit = row.split(percentage=0.85)
subsplit = row.split(factor=0.85)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui_state, "inner_key")
@ -865,9 +865,9 @@ class USERPREF_PT_theme(Panel):
row = col.row()
subsplit = row.split(percentage=0.95)
subsplit = row.split(factor=0.95)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui, "menu_shadow_fac")
@ -875,9 +875,9 @@ class USERPREF_PT_theme(Panel):
colsub.row().prop(ui, "icon_saturation")
colsub.row().prop(ui, "editor_outline")
subsplit = row.split(percentage=0.85)
subsplit = row.split(factor=0.85)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui, "menu_shadow_width")
@ -890,18 +890,18 @@ class USERPREF_PT_theme(Panel):
row = col.row()
subsplit = row.split(percentage=0.95)
subsplit = row.split(factor=0.95)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui, "axis_x")
colsub.row().prop(ui, "axis_y")
colsub.row().prop(ui, "axis_z")
subsplit = row.split(percentage=0.85)
subsplit = row.split(factor=0.85)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui, "gizmo_primary")
@ -919,18 +919,18 @@ class USERPREF_PT_theme(Panel):
row = col.row()
subsplit = row.split(percentage=0.95)
subsplit = row.split(factor=0.95)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui, "normal")
colsub.row().prop(ui, "select")
colsub.row().prop(ui, "active")
subsplit = row.split(percentage=0.85)
subsplit = row.split(factor=0.85)
padding = subsplit.split(percentage=0.15)
padding = subsplit.split(factor=0.15)
colsub = padding.column()
colsub = padding.column()
colsub.row().prop(ui, "show_colored_constraints")
@ -973,13 +973,13 @@ class USERPREF_PT_file(Panel):
paths = userpref.filepaths
system = userpref.system
split = layout.split(percentage=0.7)
split = layout.split(factor=0.7)
col = split.column()
col.label(text="File Paths:")
colsplit = col.split(percentage=0.95)
col1 = colsplit.split(percentage=0.3)
colsplit = col.split(factor=0.95)
col1 = colsplit.split(factor=0.3)
sub = col1.column()
sub.label(text="Fonts:")
@ -1003,17 +1003,17 @@ class USERPREF_PT_file(Panel):
sub.prop(paths, "render_cache_directory", text="")
sub.prop(paths, "i18n_branches_directory", text="")
sub.prop(paths, "image_editor", text="")
subsplit = sub.split(percentage=0.3)
subsplit = sub.split(factor=0.3)
subsplit.prop(paths, "animation_player_preset", text="")
subsplit.prop(paths, "animation_player", text="")
col.separator()
col.separator()
colsplit = col.split(percentage=0.95)
colsplit = col.split(factor=0.95)
sub = colsplit.column()
row = sub.split(percentage=0.3)
row = sub.split(factor=0.3)
row.label(text="Auto Execution:")
row.prop(system, "use_scripts_auto_execute")
@ -1059,8 +1059,8 @@ class USERPREF_PT_file(Panel):
col.label(text="Text Editor:")
col.prop(system, "use_tabs_as_spaces")
colsplit = col.split(percentage=0.95)
col1 = colsplit.split(percentage=0.3)
colsplit = col.split(factor=0.95)
col1 = colsplit.split(factor=0.3)
sub = col1.column()
sub.label(text="Author:")
@ -1258,7 +1258,7 @@ class USERPREF_PT_input(Panel):
inputs = userpref.inputs
split = layout.split(percentage=0.25)
split = layout.split(factor=0.25)
# Input settings
self.draw_input_prefs(inputs, split)
@ -1358,7 +1358,7 @@ class USERPREF_PT_addons(Panel):
for mod in addon_utils.modules(refresh=False)
]
split = layout.split(percentage=0.2)
split = layout.split(factor=0.2)
col = split.column()
col.prop(context.window_manager, "addon_search", text="", icon='VIEWZOOM')
@ -1458,27 +1458,27 @@ class USERPREF_PT_addons(Panel):
# Expanded UI (only if additional info is available)
if info["show_expanded"]:
if info["description"]:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="Description:")
split.label(text=info["description"])
if info["location"]:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="Location:")
split.label(text=info["location"])
if mod:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="File:")
split.label(text=mod.__file__, translate=False)
if info["author"]:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="Author:")
split.label(text=info["author"], translate=False)
if info["version"]:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="Version:")
split.label(text=".".join(str(x) for x in info["version"]), translate=False)
if info["warning"]:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="Warning:")
split.label(text=" " + info["warning"], icon='ERROR')
@ -1486,7 +1486,7 @@ class USERPREF_PT_addons(Panel):
tot_row = bool(info["wiki_url"]) + bool(user_addon)
if tot_row:
split = colsub.row().split(percentage=0.15)
split = colsub.row().split(factor=0.15)
split.label(text="Internet:")
if info["wiki_url"]:
split.operator(
@ -1634,11 +1634,11 @@ class USERPREF_PT_studiolight_specular(Panel, StudioLightPanelMixin):
system = userpref.system
light = system.solid_lights[0]
colsplit = column.split(percentage=0.85)
colsplit = column.split(factor=0.85)
self.opengl_light_buttons(colsplit, light)
light = system.solid_lights[1]
colsplit = column.split(percentage=0.85)
colsplit = column.split(factor=0.85)
self.opengl_light_buttons(colsplit, light)
light = system.solid_lights[2]

View File

@ -3948,13 +3948,13 @@ class VIEW3D_PT_shading_lighting(Panel):
shading = VIEW3D_PT_shading.get_shading(context)
col = layout.column()
split = col.split(0.9)
split = col.split(factor=0.9)
if shading.type == 'SOLID':
split.row().prop(shading, "light", expand=True)
col = split.column()
split = layout.split(0.9)
split = layout.split(factor=0.9)
col = split.column()
sub = col.row()
sub.scale_y = 0.6 # smaller matcap/hdri preview
@ -3981,7 +3981,7 @@ class VIEW3D_PT_shading_lighting(Panel):
if not shading.use_scene_world:
col = layout.column()
split = col.split(0.9)
split = col.split(factor=0.9)
col = split.column()
sub = col.row()
@ -3992,7 +3992,7 @@ class VIEW3D_PT_shading_lighting(Panel):
col.operator('wm.studiolight_userpref_show', emboss=False, text="", icon='PREFERENCES')
if shading.selected_studio_light.orientation == 'WORLD':
split = layout.split(0.9)
split = layout.split(factor=0.9)
col = split.column()
col.prop(shading, "studiolight_rotate_z", text="Rotation")
col.prop(shading, "studiolight_background_alpha")

View File

@ -625,14 +625,14 @@ class VIEW3D_PT_stencil_projectpaint(View3DPanel, Panel):
col.active = ipaint.use_stencil_layer
stencil_text = mesh.uv_layer_stencil.name if mesh.uv_layer_stencil else ""
split = col.split(0.5)
split = col.split(factor=0.5)
colsub = split.column()
colsub.alignment = 'RIGHT'
colsub.label(text="UV Layer")
split.column().menu("VIEW3D_MT_tools_projectpaint_stencil", text=stencil_text, translate=False)
# todo this should be combinded into a single row
split = col.split(0.5)
split = col.split(factor=0.5)
colsub = split.column()
colsub.alignment = 'RIGHT'
colsub.label(text="Stencil Image")
@ -814,7 +814,7 @@ class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel):
if brush.sculpt_capabilities.has_jitter:
col.separator()
colsub = col.split(0.5)
colsub = col.split(factor=0.5)
row = colsub.row(align=True)
row.alignment = 'RIGHT'
row.label(text="Jitter")
@ -1180,7 +1180,7 @@ class VIEW3D_PT_tools_imagepaint_external(Panel, View3DPaintPanel):
ipaint = toolsettings.image_paint
col = layout.column()
row = col.split(align=True, percentage=0.55)
row = col.split(factor=0.55, align=True)
row.operator("image.project_edit", text="Quick Edit")
row.operator("image.project_apply", text="Apply")

View File

@ -543,7 +543,10 @@ void RNA_api_ui_layout(StructRNA *srna)
func = RNA_def_function(srna, "split", "uiLayoutSplit");
parm = RNA_def_pointer(func, "layout", "UILayout", "", "Sub-layout to put items in");
RNA_def_function_return(func, parm);
RNA_def_float(func, "percentage", 0.0f, 0.0f, 1.0f, "Percentage", "Percentage of width to split at", 0.0f, 1.0f);
RNA_def_float(
func, "factor", 0.0f, 0.0f, 1.0f, "Percentage",
"Percentage of width to split at (leave unset for automatic calculation)",
0.0f, 1.0f);
RNA_def_boolean(func, "align", false, "", "Align buttons to each other");
/* radial/pie layout */