diff options
18 files changed, 76 insertions, 6 deletions
diff --git a/doc/python_api/examples/bpy.types.Operator.1.py b/doc/python_api/examples/bpy.types.Operator.1.py index 728d36f24b9..84397574856 100644 --- a/doc/python_api/examples/bpy.types.Operator.1.py +++ b/doc/python_api/examples/bpy.types.Operator.1.py @@ -42,8 +42,13 @@ class SimpleMouseOperator(bpy.types.Operator): self.y = event.mouse_y return self.execute(context) +# Only needed if you want to add into a dynamic menu +def menu_func(self, context): + self.layout.operator(SimpleMouseOperator.bl_idname, text="Simple Mouse Operator") +# Register and add to the view menu (required to also use F3 search "Simple Mouse Operator" for quick access) bpy.utils.register_class(SimpleMouseOperator) +bpy.types.VIEW3D_MT_view.append(menu_func) # Test call to the newly defined operator. # Here we call the operator and invoke it, meaning that the settings are taken diff --git a/doc/python_api/examples/bpy.types.Operator.2.py b/doc/python_api/examples/bpy.types.Operator.2.py index 5ba09c7e380..7ab0143b925 100644 --- a/doc/python_api/examples/bpy.types.Operator.2.py +++ b/doc/python_api/examples/bpy.types.Operator.2.py @@ -43,7 +43,7 @@ def menu_func(self, context): self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator") -# Register and add to the file selector +# Register and add to the file selector (required to also use F3 search "Text Export Operator" for quick access) bpy.utils.register_class(ExportSomeData) bpy.types.TOPBAR_MT_file_export.append(menu_func) diff --git a/doc/python_api/examples/bpy.types.Operator.3.py b/doc/python_api/examples/bpy.types.Operator.3.py index ef8bce3d8a9..9a12a7e3615 100644 --- a/doc/python_api/examples/bpy.types.Operator.3.py +++ b/doc/python_api/examples/bpy.types.Operator.3.py @@ -27,8 +27,14 @@ class DialogOperator(bpy.types.Operator): wm = context.window_manager return wm.invoke_props_dialog(self) +# Only needed if you want to add into a dynamic menu +def menu_func(self, context): + self.layout.operator(DialogOperator.bl_idname, text="Dialog Operator") + +# Register and add to the object menu (required to also use F3 search "Dialog Operator" for quick access) bpy.utils.register_class(DialogOperator) +bpy.types.VIEW3D_MT_object.append(menu_func) # Test call. bpy.ops.object.dialog_operator('INVOKE_DEFAULT') diff --git a/doc/python_api/examples/bpy.types.Operator.4.py b/doc/python_api/examples/bpy.types.Operator.4.py index 6b74a96eb2b..00c9cd250b1 100644 --- a/doc/python_api/examples/bpy.types.Operator.4.py +++ b/doc/python_api/examples/bpy.types.Operator.4.py @@ -41,8 +41,13 @@ class CustomDrawOperator(bpy.types.Operator): col.prop(self, "my_string") +# Only needed if you want to add into a dynamic menu +def menu_func(self, context): + self.layout.operator(CustomDrawOperator.bl_idname, text="Custom Draw Operator") +# Register and add to the object menu (required to also use F3 search "Custom Draw Operator" for quick access) bpy.utils.register_class(CustomDrawOperator) +bpy.types.VIEW3D_MT_object.append(menu_func) # test call bpy.ops.object.custom_draw('INVOKE_DEFAULT') diff --git a/doc/python_api/examples/bpy.types.Operator.5.py b/doc/python_api/examples/bpy.types.Operator.5.py index f1880a70018..a0b4a6d6841 100644 --- a/doc/python_api/examples/bpy.types.Operator.5.py +++ b/doc/python_api/examples/bpy.types.Operator.5.py @@ -55,8 +55,13 @@ class ModalOperator(bpy.types.Operator): context.window_manager.modal_handler_add(self) return {'RUNNING_MODAL'} +# Only needed if you want to add into a dynamic menu +def menu_func(self, context): + self.layout.operator(ModalOperator.bl_idname, text="Modal Operator") +# Register and add to the object menu (required to also use F3 search "Modal Operator" for quick access) bpy.utils.register_class(ModalOperator) +bpy.types.VIEW3D_MT_object.append(menu_func) # test call bpy.ops.object.modal_operator('INVOKE_DEFAULT') diff --git a/doc/python_api/examples/bpy.types.Operator.6.py b/doc/python_api/examples/bpy.types.Operator.6.py index ff14bfa7197..20ee4c21446 100644 --- a/doc/python_api/examples/bpy.types.Operator.6.py +++ b/doc/python_api/examples/bpy.types.Operator.6.py @@ -31,8 +31,13 @@ class SearchEnumOperator(bpy.types.Operator): context.window_manager.invoke_search_popup(self) return {'RUNNING_MODAL'} +# Only needed if you want to add into a dynamic menu +def menu_func(self, context): + self.layout.operator(SearchEnumOperator.bl_idname, text="Search Enum Operator") +# Register and add to the object menu (required to also use F3 search "Search Enum Operator" for quick access) bpy.utils.register_class(SearchEnumOperator) +bpy.types.VIEW3D_MT_object.append(menu_func) # test call bpy.ops.object.search_enum_operator('INVOKE_DEFAULT') diff --git a/doc/python_api/examples/bpy.types.Operator.py b/doc/python_api/examples/bpy.types.Operator.py index c9bf169f73e..5299b198774 100644 --- a/doc/python_api/examples/bpy.types.Operator.py +++ b/doc/python_api/examples/bpy.types.Operator.py @@ -22,8 +22,13 @@ class HelloWorldOperator(bpy.types.Operator): print("Hello World") return {'FINISHED'} +# Only needed if you want to add into a dynamic menu +def menu_func(self, context): + self.layout.operator(HelloWorldOperator.bl_idname, text="Hello World Operator") +# Register and add to the view menu (required to also use F3 search "Hello World Operator" for quick access) bpy.utils.register_class(HelloWorldOperator) +bpy.types.VIEW3D_MT_view.append(menu_func) # test call to the newly defined operator bpy.ops.wm.hello_world() diff --git a/release/scripts/templates_py/operator_file_export.py b/release/scripts/templates_py/operator_file_export.py index 45910772dc7..b4d0dc8b698 100644 --- a/release/scripts/templates_py/operator_file_export.py +++ b/release/scripts/templates_py/operator_file_export.py @@ -57,7 +57,7 @@ class ExportSomeData(Operator, ExportHelper): def menu_func_export(self, context): self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator") - +# Register and add to the "file selector" menu (required to use F3 search "Text Export Operator" for quick access) def register(): bpy.utils.register_class(ExportSomeData) bpy.types.TOPBAR_MT_file_export.append(menu_func_export) diff --git a/release/scripts/templates_py/operator_file_import.py b/release/scripts/templates_py/operator_file_import.py index 5438a7a6f9d..83496fbe17b 100644 --- a/release/scripts/templates_py/operator_file_import.py +++ b/release/scripts/templates_py/operator_file_import.py @@ -60,7 +60,7 @@ class ImportSomeData(Operator, ImportHelper): def menu_func_import(self, context): self.layout.operator(ImportSomeData.bl_idname, text="Text Import Operator") - +# Register and add to the "file selector" menu (required to use F3 search "Text Import Operator" for quick access) def register(): bpy.utils.register_class(ImportSomeData) bpy.types.TOPBAR_MT_file_import.append(menu_func_import) diff --git a/release/scripts/templates_py/operator_mesh_add.py b/release/scripts/templates_py/operator_mesh_add.py index 3fc7636459b..5a6bed92c93 100644 --- a/release/scripts/templates_py/operator_mesh_add.py +++ b/release/scripts/templates_py/operator_mesh_add.py @@ -97,7 +97,7 @@ class AddBox(bpy.types.Operator, AddObjectHelper): def menu_func(self, context): self.layout.operator(AddBox.bl_idname, icon='MESH_CUBE') - +# Register and add to the "add mesh" menu (required to use F3 search "Add Box" for quick access) def register(): bpy.utils.register_class(AddBox) bpy.types.VIEW3D_MT_mesh_add.append(menu_func) diff --git a/release/scripts/templates_py/operator_mesh_uv.py b/release/scripts/templates_py/operator_mesh_uv.py index bf893480f2f..2d4f5b17ba8 100644 --- a/release/scripts/templates_py/operator_mesh_uv.py +++ b/release/scripts/templates_py/operator_mesh_uv.py @@ -33,13 +33,18 @@ class UvOperator(bpy.types.Operator): main(context) return {'FINISHED'} +def menu_func(self, context): + self.layout.operator(UvOperator.bl_idname, text = "Simple UV Operator") +# Register and add to the "UV" menu (required to also use F3 search "Simple UV Operator" for quick access) def register(): bpy.utils.register_class(UvOperator) + bpy.types.IMAGE_MT_uvs.append(menu_func) def unregister(): bpy.utils.unregister_class(UvOperator) + bpy.types.IMAGE_MT_uvs.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_modal.py b/release/scripts/templates_py/operator_modal.py index c242e3b67b9..41b01e22f78 100644 --- a/release/scripts/templates_py/operator_modal.py +++ b/release/scripts/templates_py/operator_modal.py @@ -35,13 +35,18 @@ class ModalOperator(bpy.types.Operator): self.report({'WARNING'}, "No active object, could not finish") return {'CANCELLED'} +def menu_func(self, context): + self.layout.operator(ModalOperator.bl_idname, text=ModalOperator.bl_label) +# Register and add to the "view" menu (required to also use F3 search "Simple Modal Operator" for quick access) def register(): bpy.utils.register_class(ModalOperator) + bpy.types.VIEW3D_MT_object.append(menu_func) def unregister(): bpy.utils.unregister_class(ModalOperator) + bpy.types.VIEW3D_MT_object.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_modal_draw.py b/release/scripts/templates_py/operator_modal_draw.py index 16c6f6dbe22..a3f46586cf5 100644 --- a/release/scripts/templates_py/operator_modal_draw.py +++ b/release/scripts/templates_py/operator_modal_draw.py @@ -30,7 +30,7 @@ def draw_callback_px(self, context): class ModalDrawOperator(bpy.types.Operator): """Draw a line with the mouse""" - bl_idname = "view3d.modal_operator" + bl_idname = "view3d.modal_draw_operator" bl_label = "Simple Modal View3D Operator" def modal(self, context, event): @@ -65,13 +65,18 @@ class ModalDrawOperator(bpy.types.Operator): self.report({'WARNING'}, "View3D not found, cannot run operator") return {'CANCELLED'} +def menu_func(self, context): + self.layout.operator(ModalDrawOperator.bl_idname, text = "Modal Draw Operator") +# Register and add to the "view" menu (required to also use F3 search "Modal Draw Operator" for quick access) def register(): bpy.utils.register_class(ModalDrawOperator) + bpy.types.VIEW3D_MT_view.append(menu_func) def unregister(): bpy.utils.unregister_class(ModalDrawOperator) + bpy.types.VIEW3D_MT_view.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_modal_timer.py b/release/scripts/templates_py/operator_modal_timer.py index 808f1a1299c..11530f18829 100644 --- a/release/scripts/templates_py/operator_modal_timer.py +++ b/release/scripts/templates_py/operator_modal_timer.py @@ -31,13 +31,17 @@ class ModalTimerOperator(bpy.types.Operator): wm = context.window_manager wm.event_timer_remove(self._timer) +def menu_func(self, context): + self.layout.operator(ModalTimerOperator.bl_idname, text=ModalTimerOperator.bl_label) def register(): bpy.utils.register_class(ModalTimerOperator) + bpy.types.VIEW3D_MT_view.append(menu_func) - +# Register and add to the "view" menu (required to also use F3 search "Modal Timer Operator" for quick access) def unregister(): bpy.utils.unregister_class(ModalTimerOperator) + bpy.types.VIEW3D_MT_view.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_modal_view3d.py b/release/scripts/templates_py/operator_modal_view3d.py index 93c5ae84e2c..5fd47731d0b 100644 --- a/release/scripts/templates_py/operator_modal_view3d.py +++ b/release/scripts/templates_py/operator_modal_view3d.py @@ -57,13 +57,18 @@ class ViewOperator(bpy.types.Operator): self.report({'WARNING'}, "Active space must be a View3d") return {'CANCELLED'} +def menu_func(self, context): + self.layout.operator(ViewOperator.bl_idname, text = "Simple View Modal Operator") +# Register and add to the "view" menu (required to also use F3 search "Simple View Modal Operator" for quick access) def register(): bpy.utils.register_class(ViewOperator) + bpy.types.VIEW3D_MT_view.append(menu_func) def unregister(): bpy.utils.unregister_class(ViewOperator) + bpy.types.VIEW3D_MT_view.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_modal_view3d_raycast.py b/release/scripts/templates_py/operator_modal_view3d_raycast.py index 9130f47843a..022acc25e14 100644 --- a/release/scripts/templates_py/operator_modal_view3d_raycast.py +++ b/release/scripts/templates_py/operator_modal_view3d_raycast.py @@ -95,13 +95,18 @@ class ViewOperatorRayCast(bpy.types.Operator): self.report({'WARNING'}, "Active space must be a View3d") return {'CANCELLED'} +def menu_func(self, context): + self.layout.operator(ViewOperatorRayCast.bl_idname, text="Raycast View Modal Operator") +# Register and add to the "view" menu (required to also use F3 search "Raycast View Modal Operator" for quick access) def register(): bpy.utils.register_class(ViewOperatorRayCast) + bpy.types.VIEW3D_MT_view.append(menu_func) def unregister(): bpy.utils.unregister_class(ViewOperatorRayCast) + bpy.types.VIEW3D_MT_view.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_node.py b/release/scripts/templates_py/operator_node.py index 764e50d1697..b5ca491a0fe 100644 --- a/release/scripts/templates_py/operator_node.py +++ b/release/scripts/templates_py/operator_node.py @@ -46,13 +46,18 @@ class NodeOperator(bpy.types.Operator): main(self, context) return {'FINISHED'} +def menu_func(self, context): + self.layout.operator(NodeOperator.bl_idname, text=NodeOperator.bl_label) +# Register and add to the "Node" menu (required to also use F3 search "Simple Node Operator" for quick access) def register(): bpy.utils.register_class(NodeOperator) + bpy.types.NODE_MT_node.append(menu_func) def unregister(): bpy.utils.unregister_class(NodeOperator) + bpy.types.NODE_MT_node.remove(menu_func) if __name__ == "__main__": diff --git a/release/scripts/templates_py/operator_simple.py b/release/scripts/templates_py/operator_simple.py index 715daa3a8b4..9edb07996c0 100644 --- a/release/scripts/templates_py/operator_simple.py +++ b/release/scripts/templates_py/operator_simple.py @@ -19,13 +19,18 @@ class SimpleOperator(bpy.types.Operator): main(context) return {'FINISHED'} +def menu_func(self, context): + self.layout.operator(SimpleOperator.bl_idname, text=SimpleOperator.bl_label) +# Register and add to the "object" menu (required to also use F3 search "Simple Object Operator" for quick access) def register(): bpy.utils.register_class(SimpleOperator) + bpy.types.VIEW3D_MT_object.append(menu_func) def unregister(): bpy.utils.unregister_class(SimpleOperator) + bpy.types.VIEW3D_MT_object.remove(menu_func) if __name__ == "__main__": |