PyAPI: check modules are registered before unregister
Needed since templates may unregister classes. Also replace old modules on reloading.
This commit is contained in:
@@ -21,8 +21,7 @@
|
|||||||
# support reloading sub-modules
|
# support reloading sub-modules
|
||||||
if "bpy" in locals():
|
if "bpy" in locals():
|
||||||
from importlib import reload
|
from importlib import reload
|
||||||
for val in _modules_loaded:
|
_modules_loaded[:] = [reload(val) for val in _modules_loaded]
|
||||||
reload(val)
|
|
||||||
del reload
|
del reload
|
||||||
|
|
||||||
_modules = [
|
_modules = [
|
||||||
@@ -73,4 +72,5 @@ def unregister():
|
|||||||
from bpy.utils import unregister_class
|
from bpy.utils import unregister_class
|
||||||
for mod in reversed(_modules_loaded):
|
for mod in reversed(_modules_loaded):
|
||||||
for cls in reversed(mod.classes):
|
for cls in reversed(mod.classes):
|
||||||
unregister_class(cls)
|
if cls.is_registered:
|
||||||
|
unregister_class(cls)
|
||||||
|
@@ -23,8 +23,7 @@
|
|||||||
# support reloading sub-modules
|
# support reloading sub-modules
|
||||||
if "bpy" in locals():
|
if "bpy" in locals():
|
||||||
from importlib import reload
|
from importlib import reload
|
||||||
for val in _modules_loaded:
|
_modules_loaded[:] = [reload(val) for val in _modules_loaded]
|
||||||
reload(val)
|
|
||||||
del reload
|
del reload
|
||||||
|
|
||||||
_modules = [
|
_modules = [
|
||||||
@@ -149,7 +148,8 @@ def unregister():
|
|||||||
from bpy.utils import unregister_class
|
from bpy.utils import unregister_class
|
||||||
for mod in reversed(_modules_loaded):
|
for mod in reversed(_modules_loaded):
|
||||||
for cls in reversed(mod.classes):
|
for cls in reversed(mod.classes):
|
||||||
unregister_class(cls)
|
if cls.is_registered:
|
||||||
|
unregister_class(cls)
|
||||||
|
|
||||||
# Define a default UIList, when a list does not need any custom drawing...
|
# Define a default UIList, when a list does not need any custom drawing...
|
||||||
# Keep in sync with its #defined name in UI_interface.h
|
# Keep in sync with its #defined name in UI_interface.h
|
||||||
|
Reference in New Issue
Block a user