Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2018-03-27 13:41:01 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2018-03-27 13:46:35 +0300
commit8a62f77e64fb1ab6c1f063d34d4162b2a50db663 (patch)
tree97177d0e6617013f22286074e6c6af6e5556244d /bone_selection_sets.py
parentfad17c652d498187f1277ee8e9d14c2b2a9ba1a4 (diff)
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).
Diffstat (limited to 'bone_selection_sets.py')
-rw-r--r--bone_selection_sets.py12
1 files changed, 11 insertions, 1 deletions
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