[Bf-extensions-cvs] [8a62f77e] master: Bone Selection Sets: better keymap handling

Sybren A. Stüvel noreply at git.blender.org
Tue Mar 27 12:46:51 CEST 2018


Commit: 8a62f77e64fb1ab6c1f063d34d4162b2a50db663
Author: Sybren A. Stüvel
Date:   Tue Mar 27 12:41:01 2018 +0200
Branches: master
https://developer.blender.org/rBA8a62f77e64fb1ab6c1f063d34d4162b2a50db663

Bone Selection Sets: better keymap handling

Previously the keymap registration would cause an error when there was
no Pose keymap yet. Now the code adheres to the example code in
[the tutorial](https://docs.blender.org/api/blender_python_api_master/info_tutorial_addon.html#keymap).

===================================================================

M	bone_selection_sets.py

===================================================================

diff --git a/bone_selection_sets.py b/bone_selection_sets.py
index 32ca81c1..6d5ab482 100644
--- a/bone_selection_sets.py
+++ b/bone_selection_sets.py
@@ -514,6 +514,10 @@ def uniqify(name: str, other_names: list) -> str:
     return "{}.{:03d}".format(name, min_index)
 
 
+# store keymaps here to access after registration
+addon_keymaps = []
+
+
 def register():
     for cls in classes:
         bpy.utils.register_class(cls)
@@ -530,10 +534,11 @@ def register():
     )
 
     wm = bpy.context.window_manager
-    km = wm.keyconfigs.active.keymaps['Pose']
+    km = wm.keyconfigs.addon.keymaps.new(name='Pose')
 
     kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', alt=True, shift=True)
     kmi.properties.name = 'POSE_MT_selection_sets'
+    addon_keymaps.append((km, kmi))
 
     bpy.types.VIEW3D_MT_select_pose.append(add_sss_button)
 
@@ -545,6 +550,11 @@ def unregister():
     del bpy.types.Object.selection_sets
     del bpy.types.Object.active_selection_set
 
+    # handle the keymap
+    for km, kmi in addon_keymaps:
+        km.keymap_items.remove(kmi)
+    addon_keymaps.clear()
+
 
 if __name__ == "__main__":
     import doctest



More information about the Bf-extensions-cvs mailing list