From 63aada25dd6afc2072f8648f021580062262e92e Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 12 Mar 2025 17:05:16 +0500 Subject: [PATCH] Deprecate LaunchAddElement, LaunchRenameType MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TIL that it's possible to set invoke context from draw by changing operator_context property in UILayout 😅 --- src/bonsai/bonsai/bim/module/model/ui.py | 8 +++++--- src/bonsai/bonsai/bim/module/root/__init__.py | 1 - src/bonsai/bonsai/bim/module/root/operator.py | 16 ---------------- src/bonsai/bonsai/bim/module/type/__init__.py | 1 - src/bonsai/bonsai/bim/module/type/operator.py | 13 ------------- 5 files changed, 5 insertions(+), 34 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/ui.py b/src/bonsai/bonsai/bim/module/model/ui.py index 988506f74f..57950f7459 100644 --- a/src/bonsai/bonsai/bim/module/model/ui.py +++ b/src/bonsai/bonsai/bim/module/model/ui.py @@ -54,7 +54,8 @@ class BIM_MT_type_menu(bpy.types.Menu): def draw(self, context): props = tool.Model.get_model_props() layout = self.layout - op = layout.operator("bim.launch_rename_type", icon="GREASEPENCIL", text="Rename Type") + layout.operator_context = "INVOKE_REGION_WIN" + op = layout.operator("bim.rename_type", icon="GREASEPENCIL", text="Rename Type") op.element = props.menu_relating_type_id op = layout.operator("bim.select_type", icon="OBJECT_DATA") op.relating_type = props.menu_relating_type_id @@ -699,6 +700,7 @@ class BIM_PT_roof(bpy.types.Panel): row.operator("bim.add_roof", icon="ADD", text="") -def add_menu(self, context): - self.layout.operator("bim.launch_add_element", icon_value=bonsai.bim.icons["IFC"].icon_id, text="IFC Element") +def add_menu(self: bpy.types.Menu, context: bpy.types.Context) -> None: + self.layout.operator_context = "INVOKE_REGION_WIN" + self.layout.operator("bim.add_element", icon_value=bonsai.bim.icons["IFC"].icon_id, text="IFC Element") self.layout.separator() diff --git a/src/bonsai/bonsai/bim/module/root/__init__.py b/src/bonsai/bonsai/bim/module/root/__init__.py index daba174815..3e6f280eb2 100644 --- a/src/bonsai/bonsai/bim/module/root/__init__.py +++ b/src/bonsai/bonsai/bim/module/root/__init__.py @@ -24,7 +24,6 @@ classes = ( operator.AssignClass, operator.DisableReassignClass, operator.EnableReassignClass, - operator.LaunchAddElement, operator.ReassignClass, operator.UnlinkObject, prop.BIMRootProperties, diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index 624eefc11d..f4ac9dafc2 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -625,19 +625,3 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): row.prop(props, "profile", text="Profile") if props.representation_template != "EMPTY": prop_with_search(self.layout, props, "contexts", should_click_ok=True) - - -class LaunchAddElement(bpy.types.Operator, tool.Ifc.Operator): - bl_idname = "bim.launch_add_element" - bl_label = "Launch Add Element" - bl_options = {"REGISTER", "UNDO"} - bl_description = "Add an IFC physical product, construction type, and more" - - @classmethod - def poll(cls, context): - return tool.Ifc.get() - - def execute(self, context): - # This stub operator is needed because operators from menu skip the invoke call - bpy.ops.bim.add_element("INVOKE_DEFAULT") - return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/type/__init__.py b/src/bonsai/bonsai/bim/module/type/__init__.py index a083333456..646ab48fcf 100644 --- a/src/bonsai/bonsai/bim/module/type/__init__.py +++ b/src/bonsai/bonsai/bim/module/type/__init__.py @@ -25,7 +25,6 @@ classes = ( operator.DisableEditingType, operator.DuplicateType, operator.EnableEditingType, - operator.LaunchRenameType, operator.RemoveType, operator.RenameType, operator.SelectSimilarType, diff --git a/src/bonsai/bonsai/bim/module/type/operator.py b/src/bonsai/bonsai/bim/module/type/operator.py index 14c1df884b..a43e0b72af 100644 --- a/src/bonsai/bonsai/bim/module/type/operator.py +++ b/src/bonsai/bonsai/bim/module/type/operator.py @@ -279,19 +279,6 @@ class RenameType(bpy.types.Operator, tool.Ifc.Operator): self.layout.prop(self, "name") -class LaunchRenameType(bpy.types.Operator, tool.Ifc.Operator): - bl_idname = "bim.launch_rename_type" - bl_label = "Launch Rename Type" - bl_options = {"REGISTER", "UNDO"} - element: bpy.props.IntProperty() - name: bpy.props.StringProperty(name="Name") - - def execute(self, context): - # This stub operator is needed because operators from menu skip the invoke call - bpy.ops.bim.rename_type("INVOKE_DEFAULT", element=self.element, name=self.name) - return {"FINISHED"} - - class AutoRenameOccurrences(bpy.types.Operator): bl_idname = "bim.auto_rename_occurrences" bl_label = "Auto Rename Occurrences"