From 9bb2c00b6d87dc94b34d9c470e9ac3594d5f01de Mon Sep 17 00:00:00 2001 From: Massimo Fabbro Date: Sun, 9 Apr 2023 21:58:11 +0200 Subject: [PATCH 1/2] Fix bug related to operators without is_registered method --- src/blenderbim/blenderbim/bim/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/__init__.py b/src/blenderbim/blenderbim/bim/__init__.py index 859aa34183..bac0ff56c2 100644 --- a/src/blenderbim/blenderbim/bim/__init__.py +++ b/src/blenderbim/blenderbim/bim/__init__.py @@ -177,7 +177,9 @@ def unregister(): cls == blenderbim.bim.module.drawing.gizmos.ExtrusionGuidesGizmo or cls == blenderbim.bim.module.drawing.gizmos.DimensionLabelGizmo or cls == blenderbim.bim.module.drawing.gizmos.DotGizmo or - cls == blenderbim.bim.module.drawing.gizmos.UglyDotGizmo + cls == blenderbim.bim.module.drawing.gizmos.UglyDotGizmo or + cls == blenderbim.bim.module.geometry.operator.OverrideDuplicateMoveMacro or + cls == blenderbim.bim.module.geometry.operator.OverrideDuplicateMoveLinkedMacro ): if bpy.data.scenes['Scene'].BIMProperties.module_visibility['drawing'].is_visible is True: bpy.utils.unregister_class(cls) From df53ce9f6ec588a8c4ed29e3e178fbf0d3654c39 Mon Sep 17 00:00:00 2001 From: Massimo Fabbro Date: Sun, 9 Apr 2023 22:33:37 +0200 Subject: [PATCH 2/2] Better fix about cls without is_registered method --- src/blenderbim/blenderbim/bim/__init__.py | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/__init__.py b/src/blenderbim/blenderbim/bim/__init__.py index bac0ff56c2..62c56e72d2 100644 --- a/src/blenderbim/blenderbim/bim/__init__.py +++ b/src/blenderbim/blenderbim/bim/__init__.py @@ -172,22 +172,11 @@ def register(): def unregister(): for cls in reversed(classes): - if ( #these panels haven't the cls.is_registered attribute - cls == blenderbim.bim.module.drawing.gizmos.ExtrusionWidget or - cls == blenderbim.bim.module.drawing.gizmos.ExtrusionGuidesGizmo or - cls == blenderbim.bim.module.drawing.gizmos.DimensionLabelGizmo or - cls == blenderbim.bim.module.drawing.gizmos.DotGizmo or - cls == blenderbim.bim.module.drawing.gizmos.UglyDotGizmo or - cls == blenderbim.bim.module.geometry.operator.OverrideDuplicateMoveMacro or - cls == blenderbim.bim.module.geometry.operator.OverrideDuplicateMoveLinkedMacro - ): - if bpy.data.scenes['Scene'].BIMProperties.module_visibility['drawing'].is_visible is True: - bpy.utils.unregister_class(cls) - continue - else: - continue - if cls.is_registered is not False: + if getattr(cls, "is_registered", None) is None: bpy.utils.unregister_class(cls) + else: + if cls.is_registered is not False: + bpy.utils.unregister_class(cls) bpy.app.handlers.load_post.remove(handler.setDefaultProperties) bpy.app.handlers.load_post.remove(handler.loadIfcStore)