Fix T53171: lamp specials strength tweak fails with renamed emission nodes.

This commit is contained in:
Brecht Van Lommel 2017-11-23 19:13:31 +01:00
parent 56da112ae0
commit debd9f6ea1
Notes: blender-bot 2023-02-14 11:24:03 +01:00
Referenced by issue #53683, 2.79a release
Referenced by issue #53171, Specials Menu (W) crashes with lamps if the Emission node is missing/ renamed in Cycles
1 changed files with 10 additions and 7 deletions

View File

@ -1550,18 +1550,21 @@ class VIEW3D_MT_object_specials(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
if scene.render.use_shading_nodes:
try:
value = lamp.node_tree.nodes["Emission"].inputs["Strength"].default_value
except AttributeError:
value = None
emission_node = None
if lamp.node_tree:
for node in lamp.node_tree.nodes:
if getattr(node, "type", None) == 'EMISSION':
emission_node = node
break
if value is not None:
if emission_node is not None:
props = layout.operator("wm.context_modal_mouse", text="Strength")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.node_tree.nodes[\"Emission\"].inputs[\"Strength\"].default_value"
props.data_path_item = "data.node_tree" \
".nodes[\"" + emission_node.name + "\"]" \
".inputs[\"Strength\"].default_value"
props.header_text = "Lamp Strength: %.3f"
props.input_scale = 0.1
del value
if lamp.type == 'AREA':
props = layout.operator("wm.context_modal_mouse", text="Size X")