From 2f80c8db1172ae449d7908a4cb31d2425e5df823 Mon Sep 17 00:00:00 2001
From: Brecht Van Lommel <brechtvanlommel@pandora.be>
Date: Fri, 5 Aug 2011 20:46:30 +0000
Subject: [PATCH] Addon updates for keymap changes.

[[Split portion of a mixed commit.]]
---
 development_api_navigator.py    |  9 ++++-----
 io_coat3D/coat.py               |  6 ++++--
 mesh_bsurfaces.py               |  9 ++++++---
 space_view3d_copy_attributes.py | 25 +++++++++++++------------
 space_view3d_materials_utils.py |  9 +++------
 space_view3d_spacebar_menu.py   |  7 ++++---
 6 files changed, 34 insertions(+), 31 deletions(-)

diff --git a/development_api_navigator.py b/development_api_navigator.py
index ffd72f82f..0b4989235 100644
--- a/development_api_navigator.py
+++ b/development_api_navigator.py
@@ -658,15 +658,14 @@ class OBJECT_PT_api_navigator(ApiNavigator, bpy.types.Panel):
 
 
 def register_keymaps():
-    kc = bpy.context.window_manager.keyconfigs['Blender']
-    km = kc.keymaps.get("Text")
-    if km is None:
-         km = kc.keymaps.new(name="Text")
+    kc = bpy.context.window_manager.keyconfigs.addon
+    km = kc.keymaps.new(name="Text", space_type="TEXT")
     km.keymap_items.new('api_navigator.toggle_doc', 'ESC', 'PRESS')
 
 
 def unregister_keymaps():
-    km = bpy.data.window_managers["WinMan"].keyconfigs.default.keymaps["Text"]
+    kc = bpy.context.window_manager.keyconfigs.addon
+    km = kc.keymaps["Text"]
     kmi = km.keymap_items["api_navigator.toggle_doc"]
     km.keymap_items.remove(kmi)
 
diff --git a/io_coat3D/coat.py b/io_coat3D/coat.py
index 4d967ce14..491da6210 100644
--- a/io_coat3D/coat.py
+++ b/io_coat3D/coat.py
@@ -625,7 +625,8 @@ class VIEW3D_MT_ExtraMenu(bpy.types.Menu):
 def register():
     bpy.utils.register_module(__name__)
 
-    km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View']
+    wm = bpy.context.window_manager
+    km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D')
     kmi = km.keymap_items.new('wm.call_menu2', 'Q', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_Coat_Dynamic_Menu"
 
@@ -633,7 +634,8 @@ def register():
 def unregister():
     bpy.utils.unregister_module(__name__)
 
-    km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View']
+    wm = bpy.context.window_manager
+    km = wm.keyconfigs.addon.keymaps['3D View']
     for kmi in km.keymap_items:
         if kmi.idname == '':
             if kmi.properties.name == "VIEW3D_MT_Coat_Dynamic_Menu":
diff --git a/mesh_bsurfaces.py b/mesh_bsurfaces.py
index 2bb0fc0ee..40cf891c3 100644
--- a/mesh_bsurfaces.py
+++ b/mesh_bsurfaces.py
@@ -828,8 +828,10 @@ def register():
     bpy.types.Scene.SURFSK_precision = bpy.props.IntProperty(name="Precision", description="Precision level of the surface calculation", default=4, min=0, max=100000)
     bpy.types.Scene.SURFSK_keep_strokes = bpy.props.BoolProperty(name="Keep strokes", description="Keeps the sketched strokes after adding the surface", default=False)
 
-    keymap_item_add_surf = bpy.data.window_managers[0].keyconfigs.active.keymaps["3D View"].keymap_items.new("gpencil.surfsk_add_surface","E","PRESS", key_modifier="D")
-    keymap_item_stroke_to_curve = bpy.data.window_managers[0].keyconfigs.active.keymaps["3D View"].keymap_items.new("gpencil.surfsk_strokes_to_curves","C","PRESS", key_modifier="D")
+    kc = bpy.context.window_manager.keyconfigs.addon
+    km = kc.keymaps.new(name="3D View", space_type="VIEW_3D")
+    keymap_item_add_surf = km.keymap_items.new("gpencil.surfsk_add_surface","E","PRESS", key_modifier="D")
+    keymap_item_stroke_to_curve = km.keymap_items.new("gpencil.surfsk_strokes_to_curves","C","PRESS", key_modifier="D")
     
 
 def unregister():
@@ -842,7 +844,8 @@ def unregister():
     del bpy.types.Scene.SURFSK_precision
     del bpy.types.Scene.SURFSK_keep_strokes
     
-    km = bpy.data.window_managers[0].keyconfigs.active.keymaps["3D View"]
+    kc = bpy.context.window_manager.keyconfigs.addon
+    km = kc.keymaps["3D View"]
     for kmi in km.keymap_items:
         if kmi.idname == 'wm.call_menu':
             if kmi.properties.name == "GPENCIL_OT_SURFSK_add_surface":
diff --git a/space_view3d_copy_attributes.py b/space_view3d_copy_attributes.py
index 3a35ed1fa..a6ffc08bd 100644
--- a/space_view3d_copy_attributes.py
+++ b/space_view3d_copy_attributes.py
@@ -767,16 +767,12 @@ def register():
     bpy.utils.register_module(__name__)
 
     ''' mostly to get the keymap working '''
-    kc = bpy.context.window_manager.keyconfigs['Blender']
-    km = kc.keymaps.get("Object Mode")
-    if km is None:
-        km = kc.keymaps.new(name="Object Mode")
+    kc = bpy.context.window_manager.keyconfigs.addon
+    km = kc.keymaps.new(name="Object Mode")
     kmi = km.keymap_items.new('wm.call_menu', 'C', 'PRESS', ctrl=True)
     kmi.properties.name = 'VIEW3D_MT_copypopup'
-    km = kc.keymaps.get("Pose")
-    if km is None:
-        km = kc.keymaps.new(name="Pose")
 
+    km = kc.keymaps.new(name="Pose")
     kmi = km.keymap_items.get("pose.copy")
     if kmi is not None:
         kmi.idname = 'wm.call_menu'
@@ -786,9 +782,8 @@ def register():
     for menu in _layer_menus:
         bpy.utils.register_class(menu)
     bpy.types.DATA_PT_texface.append(_add_tface_buttons)
-    km = kc.keymaps.get("Mesh")
-    if km is None:
-        km = kc.keymaps.new(name="Mesh")
+
+    km = kc.keymaps.new(name="Mesh")
     kmi = km.keymap_items.new('wm.call_menu', 'C', 'PRESS')
     kmi.ctrl = True
     kmi.properties.name = 'MESH_MT_CopyFaceSettings'
@@ -798,7 +793,7 @@ def unregister():
     bpy.utils.unregister_module(__name__)
 
     ''' mostly to remove the keymap '''
-    kms = bpy.context.window_manager.keyconfigs['Blender'].keymaps['Pose']
+    kms = bpy.context.window_manager.keyconfigs.addon.keymaps['Pose']
     for item in kms.keymap_items:
         if item.name == 'Call Menu' and item.idname == 'wm.call_menu' and \
            item.properties.name == 'VIEW3D_MT_posecopypopup':
@@ -807,11 +802,17 @@ def unregister():
     for menu in _layer_menus:
         bpy.utils.unregister_class(menu)
     bpy.types.DATA_PT_texface.remove(_add_tface_buttons)
-    km = bpy.context.window_manager.keyconfigs.active.keymaps['Mesh']
+    km = bpy.context.window_manager.keyconfigs.addon.keymaps['Mesh']
     for kmi in km.keymap_items:
         if kmi.idname == 'wm.call_menu':
             if kmi.properties.name == 'MESH_MT_CopyFaceSettings':
                 km.keymap_items.remove(kmi)
 
+    km = bpy.context.window_manager.keyconfigs.addon.keymaps['Object Mode']
+    for kmi in km.keymap_items:
+        if kmi.idname == 'wm.call_menu':
+            if kmi.properties.name == 'VIEW3D_MT_copypopup':
+                km.keymap_items.remove(kmi)
+
 if __name__ == "__main__":
     register()
diff --git a/space_view3d_materials_utils.py b/space_view3d_materials_utils.py
index 2b3bb2d0a..a0e433167 100644
--- a/space_view3d_materials_utils.py
+++ b/space_view3d_materials_utils.py
@@ -686,18 +686,15 @@ class VIEW3D_MT_select_material(bpy.types.Menu):
 def register():
     bpy.utils.register_module(__name__)
     
-    kc = bpy.data.window_managers[0].keyconfigs.default
-    km = kc.keymaps.get("3D View")
-    if km is None:
-        km = kc.keymaps.new(name="3D View")
-
+    kc = bpy.context.window_manager.keyconfigs.addon
+    km = kc.keymaps.new(name="3D View", space_type="VIEW_3D")
     kmi = km.keymap_items.new('wm.call_menu', 'Q', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_master_material"
 
 def unregister():
     bpy.utils.unregister_module(__name__)
 
-    kc = bpy.data.window_managers[0].keyconfigs.default
+    kc = bpy.context.window_manager.keyconfigs.addon
     km = kc.keymaps["3D View"]
     for kmi in km.keymap_items:
         if kmi.idname == 'wm.call_menu':
diff --git a/space_view3d_spacebar_menu.py b/space_view3d_spacebar_menu.py
index 24082cd34..33a029cc2 100644
--- a/space_view3d_spacebar_menu.py
+++ b/space_view3d_spacebar_menu.py
@@ -1507,15 +1507,16 @@ class VIEW3D_MT_undoS(bpy.types.Menu):
 def register():
     bpy.utils.register_module(__name__)
 
-    km = bpy.context.window_manager.keyconfigs.active.keymaps['3D View']
+    wm = bpy.context.window_manager
+    km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D')
     kmi = km.keymap_items.new('wm.call_menu', 'SPACE', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_Space_Dynamic_Menu"
 
-
 def unregister():
     bpy.utils.unregister_module(__name__)
 
-    km = bpy.context.window_manager.keyconfigs.active.keymaps['3D View']
+    wm = bpy.context.window_manager
+    km = wm.keyconfigs.addon.keymaps['3D View']
     for kmi in km.keymap_items:
         if kmi.idname == 'wm.call_menu':
             if kmi.properties.name == "VIEW3D_MT_Space_Dynamic_Menu":
-- 
GitLab