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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/startup/bl_operators/wm.py')
-rw-r--r--release/scripts/startup/bl_operators/wm.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index fd1f538efd3..fba7672e846 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1574,8 +1574,15 @@ class WM_OT_addon_enable(Operator):
def execute(self, context):
import addon_utils
+
+ err_str = ""
+ def err_cb():
+ import traceback
+ nonlocal err_str
+ err_str = traceback.format_exc()
+ print(err_str)
- mod = addon_utils.enable(self.module)
+ mod = addon_utils.enable(self.module, handle_error=err_cb)
if mod:
info = addon_utils.module_bl_info(mod)
@@ -1590,6 +1597,10 @@ class WM_OT_addon_enable(Operator):
info_ver)
return {'FINISHED'}
else:
+
+ if err_str:
+ self.report({'ERROR'}, err_str)
+
return {'CANCELLED'}
@@ -1606,7 +1617,18 @@ class WM_OT_addon_disable(Operator):
def execute(self, context):
import addon_utils
- addon_utils.disable(self.module)
+ err_str = ""
+ def err_cb():
+ import traceback
+ nonlocal err_str
+ err_str = traceback.format_exc()
+ print(err_str)
+
+ addon_utils.disable(self.module, handle_error=err_cb)
+
+ if err_str:
+ self.report({'ERROR'}, err_str)
+
return {'FINISHED'}