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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user