Skip to main content
Tweeted twitter.com/StackBlender/status/1315759178426843138
Became Hot Network Question
code added, tags, title
Source Link
brockmann
  • 13k
  • 4
  • 52
  • 94

How to get custom menu items to show up in the search bar?

I have successfully created a sub menu extending onwhich extends the shift + AShift+A menu in the shader editor, but I would like to have the options show up as results in the search bar. Is this even possible, and if so how can it be done? 

enter image description here

import bpy from bpy.types import Menu, Operator def draw_menu(self, context): layout = self.layout layout.separator() layout.menu("sub_menu") class SubMenu(bpy.types.Menu): bl_label = 'Math' bl_idname = 'sub_menu' def draw(self, context): layout = self.layout layout.operator("divide.node", text="Divide") layout.operator("multiply.node", text="Multiply") layout.operator("add.node", text="Add") layout.operator("subtract.node", text="Subtract") class DivideNode(Operator): bl_idname = "divide.node" bl_label = "DivideNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'DIVIDE' return {'FINISHED'} class AddNode(Operator): bl_idname = "add.node" bl_label = "AddNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'ADD' return {'FINISHED'} class SubtractNode(Operator): bl_idname = "subtract.node" bl_label = "SubtractNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'SUBTRACT' return {'FINISHED'} class MultiplyNode(Operator): bl_idname = "multiply.node" bl_label = "MultiplyNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'MULTIPLY' return {'FINISHED'} def register(): bpy.types.NODE_MT_add.append(draw_menu) bpy.utils.register_class(MultiplyNode) bpy.utils.register_class(SubMenu) bpy.utils.register_class(DivideNode) bpy.utils.register_class(SubtractNode) bpy.utils.register_class(AddNode) def unregister(): bpy.types.NODE_MT_add.remove(draw_menu) bpy.utils.unregister_class(MultiplyNode) bpy.utils.unregister_class(SubMenu) bpy.utils.unregister_class(DivideNode) bpy.utils.unregister_class(SubtractNode) bpy.utils.unregister_class(AddNode) if __name__ == "__main__": register() 

How to get menu items to show up in search

I have successfully created a sub menu extending on the shift + A menu in the shader editor, but I would like to have the options show up as results in the search bar. Is this even possible, and if so how can it be done?enter image description here

How to get custom menu items show up in the search bar?

I have successfully created a sub menu which extends the Shift+A menu in the shader editor but I would like to have the options show up as results in the search bar. Is this even possible, and if so how can it be done? 

enter image description here

import bpy from bpy.types import Menu, Operator def draw_menu(self, context): layout = self.layout layout.separator() layout.menu("sub_menu") class SubMenu(bpy.types.Menu): bl_label = 'Math' bl_idname = 'sub_menu' def draw(self, context): layout = self.layout layout.operator("divide.node", text="Divide") layout.operator("multiply.node", text="Multiply") layout.operator("add.node", text="Add") layout.operator("subtract.node", text="Subtract") class DivideNode(Operator): bl_idname = "divide.node" bl_label = "DivideNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'DIVIDE' return {'FINISHED'} class AddNode(Operator): bl_idname = "add.node" bl_label = "AddNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'ADD' return {'FINISHED'} class SubtractNode(Operator): bl_idname = "subtract.node" bl_label = "SubtractNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'SUBTRACT' return {'FINISHED'} class MultiplyNode(Operator): bl_idname = "multiply.node" bl_label = "MultiplyNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'MULTIPLY' return {'FINISHED'} def register(): bpy.types.NODE_MT_add.append(draw_menu) bpy.utils.register_class(MultiplyNode) bpy.utils.register_class(SubMenu) bpy.utils.register_class(DivideNode) bpy.utils.register_class(SubtractNode) bpy.utils.register_class(AddNode) def unregister(): bpy.types.NODE_MT_add.remove(draw_menu) bpy.utils.unregister_class(MultiplyNode) bpy.utils.unregister_class(SubMenu) bpy.utils.unregister_class(DivideNode) bpy.utils.unregister_class(SubtractNode) bpy.utils.unregister_class(AddNode) if __name__ == "__main__": register() 
Source Link
CG Life
  • 325
  • 1
  • 13

How to get menu items to show up in search

I have successfully created a sub menu extending on the shift + A menu in the shader editor, but I would like to have the options show up as results in the search bar. Is this even possible, and if so how can it be done?enter image description here