[Bf-extensions-cvs] [1f6326cc] master: Enhanced 3D Cursor: Fix crash with Templates switching

lijenstina noreply at git.blender.org
Fri Jun 16 04:49:57 CEST 2017


Commit: 1f6326cca1351f3caa4133ddeec4ed309d64961f
Author: lijenstina
Date:   Fri Jun 16 04:49:00 2017 +0200
Branches: master
https://developer.blender.org/rBAC1f6326cca1351f3caa4133ddeec4ed309d64961f

Enhanced 3D Cursor: Fix crash with Templates switching

Bumped version to 3.0.3
Part of the T51547:
When switching Application Templates the update_keymap
call to addon preferences would crash
Add a check around that
Update wiki link
No other functional changes

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

M	space_view3d_enhanced_3d_cursor.py

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

diff --git a/space_view3d_enhanced_3d_cursor.py b/space_view3d_enhanced_3d_cursor.py
index 2f20f6c7..4361373c 100644
--- a/space_view3d_enhanced_3d_cursor.py
+++ b/space_view3d_enhanced_3d_cursor.py
@@ -21,11 +21,11 @@ bl_info = {
     "name": "Enhanced 3D Cursor",
     "description": "Cursor history and bookmarks; drag/snap cursor.",
     "author": "dairin0d",
-    "version": (3, 0, 2),
+    "version": (3, 0, 3),
     "blender": (2, 7, 7),
     "location": "View3D > Action mouse; F10; Properties panel",
     "warning": "",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
+    "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
         "Scripts/3D_interaction/Enhanced_3D_Cursor",
     "tracker_url": "https://github.com/dairin0d/enhanced-3d-cursor/issues",
     "category": "3D View"}
@@ -4378,7 +4378,7 @@ class SnapCursor_Circumscribed(bpy.types.Operator):
             self.report({'WARNING'}, 'Not implemented \
                         for %s mode' % context.mode)
             return {'CANCELLED'}
-        
+
         pos = center_of_circumscribed_circle(vecs)
         if pos is None:
             self.report({'WARNING'}, 'Select 3 objects/elements')
@@ -4399,7 +4399,7 @@ class SnapCursor_Inscribed(bpy.types.Operator):
             self.report({'WARNING'}, 'Not implemented \
                         for %s mode' % context.mode)
             return {'CANCELLED'}
-        
+
         pos = center_of_inscribed_circle(vecs)
         if pos is None:
             self.report({'WARNING'}, 'Select 3 objects/elements')
@@ -4659,7 +4659,7 @@ class CursorMonitor(bpy.types.Operator):
             if IsKeyMapItemEvent(kmi, event):
                 self.cancel(context)
                 return {'CANCELLED'}
-        
+
         try:
             return self._modal(context, event)
         except Exception as e:
@@ -4692,7 +4692,7 @@ class CursorMonitor(bpy.types.Operator):
             context.area.tag_redraw()
 
         settings = find_settings()
-        
+
         propagate_settings_to_all_screens(settings)
 
         # ================== #
@@ -5535,16 +5535,20 @@ def update_keymap(activate):
 
     wm = bpy.context.window_manager
     userprefs = bpy.context.user_preferences
-    addon_prefs = userprefs.addons[__name__].preferences
-    settings = find_settings()
 
-    wm.cursor_3d_runtime_settings.use_cursor_monitor = \
-        addon_prefs.use_cursor_monitor
+    # add a check for Templates switching introduced in 2.78.x/2.79
+    is_prefs = bool(__name__ in userprefs.addons.keys())
+    addon_prefs = userprefs.addons[__name__].preferences if is_prefs else None
 
-    auto_register_keymaps = settings.auto_register_keymaps
-    auto_register_keymaps &= addon_prefs.auto_register_keymaps
-    if not auto_register_keymaps:
-        return
+    settings = find_settings()
+    if addon_prefs:
+        wm.cursor_3d_runtime_settings.use_cursor_monitor = \
+            addon_prefs.use_cursor_monitor
+
+        auto_register_keymaps = settings.auto_register_keymaps
+        auto_register_keymaps &= addon_prefs.auto_register_keymaps
+        if not auto_register_keymaps:
+            return
 
     try:
         km = wm.keyconfigs.user.keymaps['3D View']



More information about the Bf-extensions-cvs mailing list