diff options
Diffstat (limited to 'release/scripts/startup/bl_ui/space_view3d.py')
-rw-r--r-- | release/scripts/startup/bl_ui/space_view3d.py | 169 |
1 files changed, 97 insertions, 72 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index b9a57674a6e..0fe16720d81 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -695,6 +695,10 @@ class VIEW3D_HT_header(Header): row.prop(tool_settings, "use_gpencil_vertex_select_mask_stroke", text="") row.prop(tool_settings, "use_gpencil_vertex_select_mask_segment", text="") + if gpd.is_stroke_paint_mode: + row = layout.row(align=True) + row.prop(gpd, "use_multiedit", text="", icon='GP_MULTIFRAME_EDITING') + if ( gpd.use_stroke_edit_mode or gpd.is_stroke_sculpt_mode or @@ -2236,11 +2240,6 @@ class VIEW3D_MT_object_relations(Menu): layout.operator_menu_enum("object.make_local", "type", text="Make Local...") layout.menu("VIEW3D_MT_make_single_user") - layout.separator() - - layout.operator("object.data_transfer") - layout.operator("object.datalayout_transfer") - class VIEW3D_MT_object(Menu): bl_context = "objectmode" @@ -2274,7 +2273,7 @@ class VIEW3D_MT_object(Menu): layout.menu("VIEW3D_MT_object_relations") layout.menu("VIEW3D_MT_object_constraints") layout.menu("VIEW3D_MT_object_track") - layout.menu("VIEW3D_MT_make_links", text="Make Links") + layout.menu("VIEW3D_MT_make_links") layout.separator() @@ -2292,16 +2291,7 @@ class VIEW3D_MT_object(Menu): layout.separator() - ob = context.active_object - if ob and ob.type == 'GPENCIL' and context.gpencil_data: - layout.operator_menu_enum("gpencil.convert", "type", text="Convert To") - else: - layout.operator_menu_enum("object.convert", "target") - - # Potrace lib dependency - if bpy.app.build_options.potrace: - layout.separator() - layout.operator("gpencil.trace_image") + layout.menu("VIEW3D_MT_object_convert") layout.separator() @@ -2397,37 +2387,25 @@ class VIEW3D_MT_object_context_menu(Menu): ''' # If something is selected - if obj is not None and obj.type in {'MESH', 'CURVE', 'SURFACE'}: - layout.operator("object.shade_smooth", text="Shade Smooth") - layout.operator("object.shade_flat", text="Shade Flat") - - layout.separator() + # Individual object types. if obj is None: pass - elif obj.type == 'MESH': - layout.operator_context = 'INVOKE_REGION_WIN' - layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type") - - layout.operator_context = 'INVOKE_DEFAULT' - # If more than one object is selected - if selected_objects_len > 1: - layout.operator("object.join") - - layout.separator() elif obj.type == 'CAMERA': layout.operator_context = 'INVOKE_REGION_WIN' + layout.operator("view3d.object_as_camera", text="Set Active Camera") + if obj.data.type == 'PERSP': - props = layout.operator("wm.context_modal_mouse", text="Camera Lens Angle") + props = layout.operator("wm.context_modal_mouse", text="Adjust Focal Length") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.lens" props.input_scale = 0.1 if obj.data.lens_unit == 'MILLIMETERS': - props.header_text = "Camera Lens Angle: %.1fmm" + props.header_text = "Camera Focal Length: %.1fmm" else: - props.header_text = "Camera Lens Angle: %.1f\u00B0" + props.header_text = "Camera Focal Length: %.1f\u00B0" else: props = layout.operator("wm.context_modal_mouse", text="Camera Lens Scale") @@ -2440,88 +2418,83 @@ class VIEW3D_MT_object_context_menu(Menu): if view and view.camera == obj and view.region_3d.view_perspective == 'CAMERA': props = layout.operator("ui.eyedropper_depth", text="DOF Distance (Pick)") else: - props = layout.operator("wm.context_modal_mouse", text="DOF Distance") + props = layout.operator("wm.context_modal_mouse", text="Adjust Focus Distance") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.dof.focus_distance" props.input_scale = 0.02 - props.header_text = "DOF Distance: %.3f" + props.header_text = "Focus Distance: %.3f" layout.separator() elif obj.type in {'CURVE', 'FONT'}: layout.operator_context = 'INVOKE_REGION_WIN' - props = layout.operator("wm.context_modal_mouse", text="Extrude Size") + props = layout.operator("wm.context_modal_mouse", text="Adjust Extrusion") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.extrude" props.input_scale = 0.01 - props.header_text = "Extrude Size: %.3f" + props.header_text = "Extrude: %.3f" - props = layout.operator("wm.context_modal_mouse", text="Width Size") + props = layout.operator("wm.context_modal_mouse", text="Adjust Offset") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.offset" props.input_scale = 0.01 - props.header_text = "Width Size: %.3f" - - layout.separator() - - layout.operator("object.convert", text="Convert to Mesh").target = 'MESH' - layout.operator("object.convert", text="Convert to Grease Pencil").target = 'GPENCIL' - layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type") - - layout.separator() - - elif obj.type == 'GPENCIL': - layout.operator("gpencil.convert", text="Convert to Path").type = 'PATH' - layout.operator("gpencil.convert", text="Convert to Bezier Curve").type = 'CURVE' - layout.operator("gpencil.convert", text="Convert to Polygon Curve").type = 'POLY' - - layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type") + props.header_text = "Offset: %.3f" layout.separator() elif obj.type == 'EMPTY': layout.operator_context = 'INVOKE_REGION_WIN' - props = layout.operator("wm.context_modal_mouse", text="Empty Draw Size") + props = layout.operator("wm.context_modal_mouse", text="Adjust Empty Display Size") props.data_path_iter = "selected_editable_objects" props.data_path_item = "empty_display_size" props.input_scale = 0.01 - props.header_text = "Empty Draw Size: %.3f" + props.header_text = "Empty Display Size: %.3f" layout.separator() + if obj.empty_display_type == 'IMAGE': + layout.operator("gpencil.trace_image") + + layout.separator() + elif obj.type == 'LIGHT': light = obj.data layout.operator_context = 'INVOKE_REGION_WIN' - props = layout.operator("wm.context_modal_mouse", text="Power") + props = layout.operator("wm.context_modal_mouse", text="Adjust Light Power") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.energy" props.input_scale = 1.0 props.header_text = "Light Power: %.3f" if light.type == 'AREA': - props = layout.operator("wm.context_modal_mouse", text="Size X") - props.data_path_iter = "selected_editable_objects" - props.data_path_item = "data.size" - props.header_text = "Light Size X: %.3f" - if light.shape in {'RECTANGLE', 'ELLIPSE'}: - props = layout.operator("wm.context_modal_mouse", text="Size Y") + props = layout.operator("wm.context_modal_mouse", text="Adjust Area Light X Size") + props.data_path_iter = "selected_editable_objects" + props.data_path_item = "data.size" + props.header_text = "Light Size X: %.3f" + + props = layout.operator("wm.context_modal_mouse", text="Adjust Area Light Y Size") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.size_y" props.header_text = "Light Size Y: %.3f" + else: + props = layout.operator("wm.context_modal_mouse", text="Adjust Area Light Size") + props.data_path_iter = "selected_editable_objects" + props.data_path_item = "data.size" + props.header_text = "Light Size: %.3f" elif light.type in {'SPOT', 'POINT'}: - props = layout.operator("wm.context_modal_mouse", text="Radius") + props = layout.operator("wm.context_modal_mouse", text="Adjust Light Radius") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.shadow_soft_size" props.header_text = "Light Radius: %.3f" elif light.type == 'SUN': - props = layout.operator("wm.context_modal_mouse", text="Angle") + props = layout.operator("wm.context_modal_mouse", text="Adjust Sun Light Angle") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.angle" props.header_text = "Light Angle: %.3f" @@ -2529,13 +2502,13 @@ class VIEW3D_MT_object_context_menu(Menu): if light.type == 'SPOT': layout.separator() - props = layout.operator("wm.context_modal_mouse", text="Spot Size") + props = layout.operator("wm.context_modal_mouse", text="Adjust Spot Light Size") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.spot_size" props.input_scale = 0.01 props.header_text = "Spot Size: %.2f" - props = layout.operator("wm.context_modal_mouse", text="Spot Blend") + props = layout.operator("wm.context_modal_mouse", text="Adjust Spot Light Blend") props.data_path_iter = "selected_editable_objects" props.data_path_item = "data.spot_blend" props.input_scale = -0.01 @@ -2543,6 +2516,35 @@ class VIEW3D_MT_object_context_menu(Menu): layout.separator() + # Shared among some object types. + if obj is not None: + if obj.type in {'MESH', 'CURVE', 'SURFACE'}: + layout.operator("object.shade_smooth", text="Shade Smooth") + layout.operator("object.shade_flat", text="Shade Flat") + + layout.separator() + + if obj.type in {'MESH', 'CURVE', 'SURFACE', 'ARMATURE', 'GPENCIL'}: + if selected_objects_len > 1: + layout.operator("object.join") + + if obj.type in {'MESH', 'CURVE', 'SURFACE', 'POINTCLOUD', 'META', 'FONT'}: + layout.operator_menu_enum("object.convert", "target") + + if obj.type == 'GPENCIL': + layout.operator_menu_enum("gpencil.convert", "type", text="Convert To") + + if ( + obj.type in {'MESH', 'CURVE', 'SURFACE', 'GPENCIL', 'LATTICE', 'ARMATURE', 'META'} or + (obj.type == 'EMPTY' and obj.instance_collection is not None) + ): + layout.operator_context = 'INVOKE_REGION_WIN' + layout.operator_menu_enum("object.origin_set", text="Set Origin", property="type") + layout.operator_context = 'INVOKE_DEFAULT' + + layout.separator() + + # Shared among all object types layout.operator("view3d.copybuffer", text="Copy Objects", icon='COPYDOWN') layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN') @@ -2787,8 +2789,25 @@ class VIEW3D_MT_make_single_user(Menu): props.object = props.obdata = props.material = False +class VIEW3D_MT_object_convert(Menu): + bl_label = "Convert" + + def draw(self, context): + layout = self.layout + ob = context.active_object + + if ob and ob.type == 'GPENCIL' and context.gpencil_data: + layout.operator_enum("gpencil.convert", "type") + else: + layout.operator_enum("object.convert", "target") + + # Potrace lib dependency. + if bpy.app.build_options.potrace: + layout.operator("gpencil.trace_image", icon='OUTLINER_OB_GREASEPENCIL') + + class VIEW3D_MT_make_links(Menu): - bl_label = "Make Links" + bl_label = "Link/Transfer Data" def draw(self, _context): layout = self.layout @@ -2796,10 +2815,10 @@ class VIEW3D_MT_make_links(Menu): if len(bpy.data.scenes) > 10: layout.operator_context = 'INVOKE_REGION_WIN' - layout.operator("object.make_links_scene", text="Objects to Scene...", icon='OUTLINER_OB_EMPTY') + layout.operator("object.make_links_scene", text="Link Objects to Scene...", icon='OUTLINER_OB_EMPTY') else: layout.operator_context = 'EXEC_REGION_WIN' - layout.operator_menu_enum("object.make_links_scene", "scene", text="Objects to Scene") + layout.operator_menu_enum("object.make_links_scene", "scene", text="Link Objects to Scene") layout.separator() @@ -2807,7 +2826,12 @@ class VIEW3D_MT_make_links(Menu): layout.operator_enum("object.make_links_data", "type") # inline - layout.operator("object.join_uvs") # stupid place to add this! + layout.operator("object.join_uvs", text="Copy UV Maps") + + layout.separator() + + layout.operator("object.data_transfer") + layout.operator("object.datalayout_transfer") class VIEW3D_MT_brush_paint_modes(Menu): @@ -7529,6 +7553,7 @@ classes = ( VIEW3D_MT_object_rigid_body, VIEW3D_MT_object_clear, VIEW3D_MT_object_context_menu, + VIEW3D_MT_object_convert, VIEW3D_MT_object_shading, VIEW3D_MT_object_apply, VIEW3D_MT_object_relations, |