Hallo!
I am really a noobie at creating functional addons.
and need some help to merge two single operator to one.
It is a simple if else function (i think), but i don´t really understood to do it by myself.
I want to enable and disable an user addon in my custom panel directly.
here my experience:
import bpy
#two singel operator/ they works fine!
class E_Operator(bpy.types.Operator):
"""Tooltip"""
bl_idname = "enable.operator"
bl_label = "Enable"
def execute(self, context):
bpy.ops.wm.addon_enable(module="wkst_extra_objects")
return {'FINISHED'}
class D_Operator(bpy.types.Operator):
"""Tooltip"""
bl_idname = "disable.operator"
bl_label = "Disable"
def execute(self, context):
bpy.ops.wm.addon_disable(module="wkst_extra_objects")
return {'FINISHED'}
# want one operator / how to define the module name (addon) name?
class Operator(bpy.types.Operator):
"""Tooltip"""
bl_idname = "object.operator"
bl_label = "Object Operator"
def execute(self, context):
module_name = 'wkst_extra_objects'
is_enabled = module_name
if is_enabled:
bpy.ops.wm.addon_disable(module="wkst_extra_objects")
else:
bpy.ops.wm.addon_enable(module="wkst_extra_objects")
return {'FINISHED'}
# panel for operator
class Panel(bpy.types.Panel):
"""Creates a Panel"""
bl_label = "Panel"
bl_idname = "OBJECT_PT_hello"
bl_space_type = 'VIEW_3D'
#bl_region_type = 'TOOLS'
bl_region_type = 'UI'
def draw(self, context):
layout = self.layout
#two singel operator / works fine!
row = layout.row()
row.operator("disable.operator", icon='WORLD_DATA')
row.operator("enable.operator", icon='WORLD_DATA')
# want one operator_var_1/ how to define the module name (addon) name?
row = layout.row()
row.operator("object.operator", icon='WORLD_DATA')
# want one operator_var_2/ how to define the module name (addon) name?
row = layout.row()
module_name = 'wkst_extra_objects'
is_enabled = module_name
if is_enabled:
row.operator("wm.addon_disable", icon='CHECKBOX_HLT', text="Extra Objects", emboss=False).module = module_name
else:
row.operator("wm.addon_enable", icon='CHECKBOX_DEHLT', text="Extra Objects", emboss=False).module = module_name
##########################
def register():
bpy.utils.register_class(Panel)
bpy.utils.register_class(E_Operator)
bpy.utils.register_class(D_Operator)
bpy.utils.register_class(Operator)
def unregister():
bpy.utils.unregister_class(Panel)
bpy.utils.unregister_class(E_Operator)
bpy.utils.unregister_class(D_Operator)
bpy.utils.unregister_class(Operator)
if __name__ == "__main__":
register()