From 64a27614ff29682023571d30c66032dfd10bc3df Mon Sep 17 00:00:00 2001 From: Massimo Fabbro Date: Fri, 17 Mar 2023 15:51:56 +0100 Subject: [PATCH] Fix bug #2825 --- src/blenderbim/blenderbim/bim/__init__.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/__init__.py b/src/blenderbim/blenderbim/bim/__init__.py index 2140dcb0c7..859aa34183 100644 --- a/src/blenderbim/blenderbim/bim/__init__.py +++ b/src/blenderbim/blenderbim/bim/__init__.py @@ -17,6 +17,7 @@ # along with BlenderBIM Add-on. If not, see . import bpy +import blenderbim import importlib from . import handler, ui, prop, operator, helper @@ -171,7 +172,21 @@ def register(): def unregister(): for cls in reversed(classes): - bpy.utils.unregister_class(cls) + 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 + ): + 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: + bpy.utils.unregister_class(cls) + bpy.app.handlers.load_post.remove(handler.setDefaultProperties) bpy.app.handlers.load_post.remove(handler.loadIfcStore) bpy.app.handlers.save_post.remove(handler.ensureIfcExported)