From 87f110bae50f2bbbbda4867d1a5493c5fcc5597b Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Tue, 5 Jul 2022 15:24:10 +0200 Subject: [PATCH] Add search operator to material enum field --- src/blenderbim/blenderbim/bim/module/material/prop.py | 4 ++++ src/blenderbim/blenderbim/bim/module/material/ui.py | 8 ++++---- .../blenderbim/bim/module/pset_template/prop.py | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/material/prop.py b/src/blenderbim/blenderbim/bim/module/material/prop.py index 8f400ab07f..88b85fa0ee 100644 --- a/src/blenderbim/blenderbim/bim/module/material/prop.py +++ b/src/blenderbim/blenderbim/bim/module/material/prop.py @@ -137,3 +137,7 @@ class BIMObjectMaterialProperties(PropertyGroup): parameterized_profile_classes: EnumProperty( items=getParameterizedProfileClasses, name="Parameterized Profile Classes" ) + + getter_enum = { + "material": get_materials + } diff --git a/src/blenderbim/blenderbim/bim/module/material/ui.py b/src/blenderbim/blenderbim/bim/module/material/ui.py index d0048f5633..f657ab0a40 100644 --- a/src/blenderbim/blenderbim/bim/module/material/ui.py +++ b/src/blenderbim/blenderbim/bim/module/material/ui.py @@ -22,6 +22,7 @@ from ifcopenshell.api.material.data import Data from ifcopenshell.api.profile.data import Data as ProfileData from blenderbim.bim.ifc import IfcStore from blenderbim.bim.helper import draw_attributes +from blenderbim.bim.ui import prop_with_search from blenderbim.bim.module.material.data import MaterialsData, ObjectMaterialData @@ -190,7 +191,7 @@ class BIM_PT_object_material(Panel): row = self.layout.row(align=True) row.prop(self.props, "material_type", text="") if self.props.material_type == "IfcMaterial" or self.props.material_type == "IfcMaterialList": - row.prop(self.props, "material", text="") + prop_with_search(row, self.props, "material", text="") row.operator("bim.assign_material", icon="ADD", text="") def draw_material_ui(self): @@ -220,8 +221,7 @@ class BIM_PT_object_material(Panel): return self.draw_read_only_single_ui() def draw_editable_single_ui(self): - row = self.layout.row(align=True) - row.prop(self.props, "material", text="") + prop_with_search(self.layout, self.props, "material", text="") def draw_read_only_single_ui(self): material = Data.materials[self.product_data["id"]] @@ -242,7 +242,7 @@ class BIM_PT_object_material(Panel): row.prop(attribute, "string_value", text=attribute.name) row.prop(attribute, "is_null", icon="RADIOBUT_OFF" if attribute.is_null else "RADIOBUT_ON", text="") row = self.layout.row(align=True) - row.prop(self.props, "material", text="") + prop_with_search(row, self.props, "material", text="") op = row.operator(f"bim.add_{self.set_item_name}", icon="ADD", text="") setattr(op, f"{self.set_item_name}_set", self.material_set_id) diff --git a/src/blenderbim/blenderbim/bim/module/pset_template/prop.py b/src/blenderbim/blenderbim/bim/module/pset_template/prop.py index eb648969d0..94acb6c234 100644 --- a/src/blenderbim/blenderbim/bim/module/pset_template/prop.py +++ b/src/blenderbim/blenderbim/bim/module/pset_template/prop.py @@ -147,7 +147,7 @@ class PsetTemplate(PropertyGroup): applicable_entity: StringProperty(name="Applicable Entity") getter_enum = { - "template_type": lambda self, context: get_template_type(self, context), + "template_type": get_template_type, }