I am not sure what is causing this message every time I try to unregister an add-on that defines custom hotkeys / keyboard shortcuts:
search for unknown operator 'CATEGORY_operator_name' , 'CATEGORY_operator_name'
search for unknown operator 'CATEGORY_operator_name' , 'CATEGORY_operator_name'
I have tried multiple register and unregister options: the one listed in this older Add-on Tutorial and methods listed in other add-ons and none of them make this message go away. This is my current test script, anything obviously wrong?
import bpy
bl_info = {
"name": "Keymap Test",
"author": "nBurn",
"location": "Searchbar > Keymap Test",
"version": (0, 0, 0),
"blender": (2, 7, 7),
"description": "Test for adding custom hotkeys",
"wiki_url": "",
"category": "Object"
}
print("\nAdd-on loaded:") # debug
print("keymap_test.py") # debug
class KeymapTest(bpy.types.Operator):
bl_idname = 'object.keymap_test_op'
bl_label = 'Keymap Test'
bl_description = 'Main class for add-on'
bl_options = {'REGISTER'}
def invoke(self, context, event):
print("KeymapTest invoke method called")
return {'FINISHED'}
# store keymaps here to access after registration
#addon_keymaps = []
def register():
print("register function called")
bpy.utils.register_class(KeymapTest)
# add keymap entry
kc = bpy.context.window_manager.keyconfigs.addon
if kc:
km = kc.keymaps.new(name='3D View', space_type='VIEW_3D')
#kmi = km.keymap_items.new(KeymapTest.bl_idname, \
kmi = km.keymap_items.new('object.keymap_test_op', \
'NUMPAD_SLASH', 'PRESS', ctrl=True)
#kmi.properties.total = 3
#addon_keymaps.append((km, kmi))
def unregister():
print("unregister function called")
# remove keymap entry
'''
if addon_keymaps:
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
'''
kc = bpy.context.window_manager.keyconfigs.addon
if kc:
km = kc.keymaps['3D View']
#kmi = km.keymap_items[KeymapTest.bl_idname]
kmi = km.keymap_items['object.keymap_test_op']
km.keymap_items.remove(kmi)
bpy.utils.unregister_class(KeymapTest)
if __name__ == '__main__':
register()