forked from bartvdbraak/blender
PyAPI: don't adjust prefs when an fails to load
Recent addons commit meant that addons would be enabled even if they weren't found. This would give an error (which is fine), but also remove from preferences.
This commit is contained in:
parent
2dfe5e30ac
commit
3ff3f563e5
@ -251,7 +251,7 @@ def _addon_remove(module_name):
|
|||||||
addons.remove(addon)
|
addons.remove(addon)
|
||||||
|
|
||||||
|
|
||||||
def enable(module_name, default_set=True, persistent=False, handle_error=None):
|
def enable(module_name, default_set=False, persistent=False, handle_error=None):
|
||||||
"""
|
"""
|
||||||
Enables an addon by name.
|
Enables an addon by name.
|
||||||
|
|
||||||
@ -308,7 +308,8 @@ def enable(module_name, default_set=True, persistent=False, handle_error=None):
|
|||||||
mod.__addon_enabled__ = False
|
mod.__addon_enabled__ = False
|
||||||
except:
|
except:
|
||||||
handle_error()
|
handle_error()
|
||||||
_addon_remove(module_name)
|
if default_set:
|
||||||
|
_addon_remove(module_name)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# 2) try register collected modules
|
# 2) try register collected modules
|
||||||
@ -322,7 +323,8 @@ def enable(module_name, default_set=True, persistent=False, handle_error=None):
|
|||||||
getattr(mod, "__file__", module_name))
|
getattr(mod, "__file__", module_name))
|
||||||
handle_error()
|
handle_error()
|
||||||
del sys.modules[module_name]
|
del sys.modules[module_name]
|
||||||
_addon_remove(module_name)
|
if default_set:
|
||||||
|
_addon_remove(module_name)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# * OK loaded successfully! *
|
# * OK loaded successfully! *
|
||||||
|
@ -1737,7 +1737,7 @@ class WM_OT_addon_enable(Operator):
|
|||||||
err_str = traceback.format_exc()
|
err_str = traceback.format_exc()
|
||||||
print(err_str)
|
print(err_str)
|
||||||
|
|
||||||
mod = addon_utils.enable(self.module, handle_error=err_cb)
|
mod = addon_utils.enable(self.module, default_set=True, handle_error=err_cb)
|
||||||
|
|
||||||
if mod:
|
if mod:
|
||||||
info = addon_utils.module_bl_info(mod)
|
info = addon_utils.module_bl_info(mod)
|
||||||
|
@ -63,7 +63,7 @@ def test_load_addons():
|
|||||||
for mod in modules:
|
for mod in modules:
|
||||||
mod_name = mod.__name__
|
mod_name = mod.__name__
|
||||||
print("\tenabling:", mod_name)
|
print("\tenabling:", mod_name)
|
||||||
addon_utils.enable(mod_name)
|
addon_utils.enable(mod_name, default_set=True)
|
||||||
if mod_name not in addons:
|
if mod_name not in addons:
|
||||||
addons_fail.append(mod_name)
|
addons_fail.append(mod_name)
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ def reload_addons(do_reload=True, do_reverse=True):
|
|||||||
for mod in modules:
|
for mod in modules:
|
||||||
mod_name = mod.__name__
|
mod_name = mod.__name__
|
||||||
print("\tenabling:", mod_name)
|
print("\tenabling:", mod_name)
|
||||||
addon_utils.enable(mod_name)
|
addon_utils.enable(mod_name, default_set=True)
|
||||||
assert(mod_name in addons)
|
assert(mod_name in addons)
|
||||||
|
|
||||||
for mod in modules:
|
for mod in modules:
|
||||||
|
@ -74,7 +74,7 @@ def load_addons():
|
|||||||
|
|
||||||
for mod in modules:
|
for mod in modules:
|
||||||
mod_name = mod.__name__
|
mod_name = mod.__name__
|
||||||
addon_utils.enable(mod_name)
|
addon_utils.enable(mod_name, default_set=True)
|
||||||
assert(mod_name in addons)
|
assert(mod_name in addons)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user