UI: Object Context Menu tweaks.

* Move type-specific options first.
Allows to get quicker access to settings like Shading Smooth/Flat
by pressing W -> S/F, or camera or light settings.

* Lights: Rename Strength to Energy
* Lights: Show Energy when using EEVEE
This commit is contained in:
Pablo Vazquez
2018-11-22 19:02:44 +01:00
parent f30271e3d4
commit 62592ae987

View File

@@ -1733,37 +1733,14 @@ class VIEW3D_MT_object_specials(Menu):
return context.object
def draw(self, context):
layout = self.layout
obj = context.object
layout.operator("view3d.copybuffer", text="Copy Objects", icon='COPYDOWN')
layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN')
layout.separator()
layout.operator("object.duplicate_move")
layout.operator("object.duplicate_move_linked")
layout.separator()
layout.menu("VIEW3D_MT_snap")
layout.menu("VIEW3D_MT_object_parent")
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("object.move_to_collection")
layout.separator()
layout.operator("anim.keyframe_insert_menu", text="Insert Keyframe...")
layout.separator()
layout.operator("object.delete", text="Delete...").use_global = False
is_eevee = context.scene.render.engine == 'BLENDER_EEVEE'
if obj.type == 'MESH':
layout.separator()
layout.operator("object.shade_smooth", text="Smooth Shading")
layout.operator("object.shade_flat", text="Flat Shading")
@@ -1841,15 +1818,21 @@ class VIEW3D_MT_object_specials(Menu):
emission_node = node
break
if is_eevee and not emission_node:
props = layout.operator("wm.context_modal_mouse", text="Energy")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.energy"
props.header_text = "Light Energy: %.3f"
if emission_node is not None:
props = layout.operator("wm.context_modal_mouse", text="Strength")
props = layout.operator("wm.context_modal_mouse", text="Energy")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = (
"data.node_tree"
".nodes[\"" + emission_node.name + "\"]"
".inputs[\"Strength\"].default_value"
)
props.header_text = "Light Strength: %.3f"
props.header_text = "Light Energy: %.3f"
props.input_scale = 0.1
if light.type == 'AREA':
@@ -1865,13 +1848,14 @@ class VIEW3D_MT_object_specials(Menu):
props.header_text = "Light Size Y: %.3f"
elif light.type in {'SPOT', 'POINT', 'SUN'}:
props = layout.operator("wm.context_modal_mouse", text="Size")
props = layout.operator("wm.context_modal_mouse", text="Radius")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.shadow_soft_size"
props.header_text = "Light Size: %.3f"
props.header_text = "Light Radius: %.3f"
if light.type == 'SPOT':
layout.separator()
props = layout.operator("wm.context_modal_mouse", text="Spot Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.spot_size"
@@ -1884,6 +1868,31 @@ class VIEW3D_MT_object_specials(Menu):
props.input_scale = -0.01
props.header_text = "Spot Blend: %.2f"
layout.separator()
layout.operator("view3d.copybuffer", text="Copy Objects", icon='COPYDOWN')
layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN')
layout.separator()
layout.operator("object.duplicate_move", icon="DUPLICATE")
layout.operator("object.duplicate_move_linked")
layout.separator()
layout.menu("VIEW3D_MT_snap")
layout.menu("VIEW3D_MT_object_parent")
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("object.move_to_collection")
layout.separator()
layout.operator("anim.keyframe_insert_menu", text="Insert Keyframe...")
layout.separator()
layout.operator("object.delete", text="Delete...").use_global = False
class VIEW3D_MT_object_shading(Menu):
# XXX, this menu is a place to store shading operator in object mode