Commit: e5c13aebea6bb884ad4d54b338152c1867026fa0
Author: Bastien Montagne
Date: Sun Oct 26 10:01:03 2014 +0100
Branches: master
https://developer.blender.org/rBe5c13aebea6bb884ad4d54b338152c1867026fa0
Fix T42372: demo addon in doc was not handling keymaps correctly during
(un)registration.
First, you should unregister in reverse order you registered your operators,
keymaps, etc.
Second, when registering keymaps you have to check keyconfigs are actually
available (they are not in background mode).
===================================================================
M doc/python_api/rst/info_tutorial_addon.rst
===================================================================
diff --git a/doc/python_api/rst/info_tutorial_addon.rst
b/doc/python_api/rst/info_tutorial_addon.rst
index 5637cf2..436f74b 100644
--- a/doc/python_api/rst/info_tutorial_addon.rst
+++ b/doc/python_api/rst/info_tutorial_addon.rst
@@ -563,20 +563,26 @@ Bringing it all together
# handle the keymap
wm = bpy.context.window_manager
- km = wm.keyconfigs.addon.keymaps.new(name='Object Mode',
space_type='EMPTY')
- kmi = km.keymap_items.new(ObjectCursorArray.bl_idname, 'SPACE',
'PRESS', ctrl=True, shift=True)
- kmi.properties.total = 4
- addon_keymaps.append((km, kmi))
+ # Note that in background mode (no GUI available), keyconfigs are not
available either, so we have to check this
+ # to avoid nasty errors in background case.
+ kc = wm.keyconfigs.addon
+ if kc:
+ km = wm.keyconfigs.addon.keymaps.new(name='Object Mode',
space_type='EMPTY')
+ kmi = km.keymap_items.new(ObjectCursorArray.bl_idname, 'SPACE',
'PRESS', ctrl=True, shift=True)
+ kmi.properties.total = 4
+ addon_keymaps.append((km, kmi))
def unregister():
- bpy.utils.unregister_class(ObjectCursorArray)
- bpy.types.VIEW3D_MT_object.remove(menu_func)
-
+ # Note: when unregistering, it's usually good practice to do it in
reverse order you registered.
+ # Can avoid strange issues like keymap still referring to operators
already unregistered...
# handle the keymap
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
+ bpy.utils.unregister_class(ObjectCursorArray)
+ bpy.types.VIEW3D_MT_object.remove(menu_func)
+
if __name__ == "__main__":
register()
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs