more dynamic UI
This commit is contained in:
parent
c87c29596e
commit
4626f5c15d
@ -20,7 +20,7 @@ class RT_OT_list_object_affected_by_simplify(Operator):
|
||||
render = context.scene.render
|
||||
simplify_viewport = render.simplify_subdivision
|
||||
simplify_render = render.simplify_subdivision_render
|
||||
max_child_particles = render.simplify_child_particles
|
||||
max_child_particles = min(render.simplify_child_particles, render.simplify_child_particles_render)
|
||||
volume_limit_resolution = render.simplify_volumes
|
||||
|
||||
for obj in context.scene.objects:
|
||||
@ -115,6 +115,8 @@ class RT_OT_list_object_affected_by_simplify(Operator):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.use_property_decorate = False
|
||||
layout.use_property_split = True
|
||||
render = context.scene.render
|
||||
## Show simplify settings
|
||||
# layout.label(text="Simplify Settings:")
|
||||
@ -124,19 +126,6 @@ class RT_OT_list_object_affected_by_simplify(Operator):
|
||||
|
||||
layout.label(text="Render:")
|
||||
bpy.types.RENDER_PT_simplify_render.draw(self, context)
|
||||
# row = box.row()
|
||||
# row.label(text="Current Simplify Settings:", icon='SETTINGS')
|
||||
|
||||
# col = box.column(align=True)
|
||||
# row = col.row()
|
||||
# # row.label(text=f"Enabled: {render.use_simplify}")
|
||||
# row.prop(render, "use_simplify") # Enabled
|
||||
# row = col.row()
|
||||
# # row.label(text=f"Viewport Subdivision: {render.simplify_subdivision}")
|
||||
# row.prop(render, "simplify_subdivision") # Viewport
|
||||
# row = col.row()
|
||||
# # row.label(text=f"Render Subdivision: {render.simplify_subdivision_render}")
|
||||
# row.prop(render, "simplify_subdivision_render") # Render
|
||||
|
||||
layout.separator()
|
||||
|
||||
@ -153,8 +142,12 @@ class RT_OT_list_object_affected_by_simplify(Operator):
|
||||
obj, affected_data, icon = obj_data
|
||||
|
||||
for i, data in enumerate(affected_data):
|
||||
row = col.row()
|
||||
# Show the specific affected feature
|
||||
if data['type'] == 'SUBSURF':
|
||||
mod = data['modifier']
|
||||
|
||||
# Modifier name row
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
@ -163,53 +156,115 @@ class RT_OT_list_object_affected_by_simplify(Operator):
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
# Show the specific affected feature
|
||||
if data['type'] == 'SUBSURF':
|
||||
mod = data['modifier']
|
||||
row.label(text=f"SubSurf: {mod.name}", icon='MOD_SUBSURF')
|
||||
# Modifier name as operator + Viewport levels on same row
|
||||
op = row.operator('rt.select_object_by_name', text=mod.name, icon='MOD_SUBSURF', emboss=False)
|
||||
op.object_name = obj.name
|
||||
op.modifier_name = mod.name
|
||||
row.label(text="Viewport:")
|
||||
row.prop(mod, "levels", text="")
|
||||
|
||||
# Show viewport levels
|
||||
sub_row = row.row(align=True)
|
||||
sub_row.label(text=f"V: {data['viewport_current']}→{data['viewport_limited']}")
|
||||
|
||||
|
||||
# Show render levels
|
||||
sub_row = row.row(align=True)
|
||||
sub_row.label(text=f"R: {data['render_current']}→{data['render_limited']}")
|
||||
# Render levels row (indented)
|
||||
row = col.row()
|
||||
# Indent to match
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
row.label(text="Render:")
|
||||
row.prop(mod, "render_levels", text="")
|
||||
|
||||
elif data['type'] == 'MULTIRES':
|
||||
mod = data['modifier']
|
||||
row.label(text=f"Multires: {mod.name}", icon='MOD_MULTIRES')
|
||||
|
||||
# Show viewport levels
|
||||
sub_row = row.row(align=True)
|
||||
sub_row.label(text=f"V: {data['viewport_current']}→{data['viewport_limited']}")
|
||||
# Modifier name row
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
op.object_name = obj.name
|
||||
else:
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
# Show render levels
|
||||
sub_row = row.row(align=True)
|
||||
sub_row.label(text=f"R: {data['render_current']}→{data['render_limited']}")
|
||||
# Modifier name as operator + Viewport levels on same row
|
||||
op = row.operator('rt.select_object_by_name', text=mod.name, icon='MOD_MULTIRES', emboss=False)
|
||||
op.object_name = obj.name
|
||||
op.modifier_name = mod.name
|
||||
row.label(text="Viewport:")
|
||||
row.prop(mod, "levels", text="")
|
||||
|
||||
# Render levels row (indented)
|
||||
row = col.row()
|
||||
# Indent to match
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
row.label(text="Render:")
|
||||
row.prop(mod, "render_levels", text="")
|
||||
|
||||
elif data['type'] == 'PARTICLE':
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
op.object_name = obj.name
|
||||
else:
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
psys = data['particle_system']
|
||||
row.label(text=f"Particles: {psys.name}", icon='PARTICLES')
|
||||
row.label(text=f"Type: {data['particle_type']}")
|
||||
row.label(text=f"Count: {data['count']}")
|
||||
|
||||
elif data['type'] == 'HAIR':
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
op.object_name = obj.name
|
||||
else:
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
mod = data['modifier']
|
||||
row.label(text=f"Hair: {mod.name}", icon='HAIR')
|
||||
row.label(text=f"Node Group: {data['node_group']}")
|
||||
|
||||
elif data['type'] == 'SUBSURFACE':
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
op.object_name = obj.name
|
||||
else:
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
mat = data['material']
|
||||
row.label(text=f"Material: {mat.name}", icon='MATERIAL')
|
||||
row.label(text=f"Subsurface: {data['subsurface_value']:.3f}")
|
||||
|
||||
elif data['type'] == 'VOLUME_MAT':
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
op.object_name = obj.name
|
||||
else:
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
mat = data['material']
|
||||
row.label(text=f"Volume Material: {mat.name}", icon='MATERIAL')
|
||||
|
||||
elif data['type'] == 'VOLUME_OBJ':
|
||||
row = col.row()
|
||||
if i == 0:
|
||||
# Show object name and icon for first item
|
||||
op = row.operator('rt.select_object_by_name', text=obj.name, icon=icon, emboss=False)
|
||||
op.object_name = obj.name
|
||||
else:
|
||||
# Subsequent rows, show empty space
|
||||
row.label(text=' ', icon='BLANK1')
|
||||
|
||||
row.label(text="Volume Object", icon='VOLUME_DATA')
|
||||
|
||||
def execute(self, context):
|
||||
|
Loading…
x
Reference in New Issue
Block a user