clash ui - deduplicate ui code

This commit is contained in:
Andrej730
2025-05-21 16:16:08 +05:00
parent c9eea76e57
commit 0405b5c61f
+20 -35
View File
@@ -81,45 +81,30 @@ class BIM_PT_ifcclash(Panel):
row = layout.row() row = layout.row()
row.prop(clash_set, "check_all") row.prop(clash_set, "check_all")
row = layout.row(align=True) def draw_clash_set_group(group: tool.Clash.ClashSourceGroup) -> None:
row.label(text="Group A:", icon="OUTLINER_OB_POINTCLOUD")
row.operator("bim.add_clash_source", icon="ADD", text="").group = "a"
for index, source in enumerate(clash_set.a):
row = layout.row(align=True) row = layout.row(align=True)
row.prop(source, "name", text="") row.label(text=f"Group {group.upper()}:", icon="OUTLINER_OB_POINTCLOUD")
row.prop(source, "mode", text="") row.operator("bim.add_clash_source", icon="ADD", text="").group = group
op = row.operator("bim.select_clash_source", icon="FILE_FOLDER", text="")
op.index = index
op.group = "a"
op = row.operator("bim.remove_clash_source", icon="X", text="")
op.index = index
op.group = "a"
if source.mode != "a": sources = clash_set.get_clash_sources_group(group)
bonsai.bim.helper.draw_filter( for index, source in enumerate(sources):
layout, source.filter_groups, ClashData, f"clash_{props.active_clash_set_index}_a_{index}" row = layout.row(align=True)
) row.prop(source, "name", text="")
row.prop(source, "mode", text="")
op = row.operator("bim.select_clash_source", icon="FILE_FOLDER", text="")
op.index = index
op.group = group
op = row.operator("bim.remove_clash_source", icon="X", text="")
op.index = index
op.group = group
row = layout.row(align=True) if source.mode != "a":
row.label(text="Group B:", icon="OUTLINER_OB_POINTCLOUD") bonsai.bim.helper.draw_filter(
row.operator("bim.add_clash_source", icon="ADD", text="").group = "b" layout, source.filter_groups, ClashData, f"clash_{props.active_clash_set_index}_{group}_{index}"
)
for index, source in enumerate(clash_set.b): draw_clash_set_group("a")
row = layout.row(align=True) draw_clash_set_group("b")
row.prop(source, "name", text="")
row.prop(source, "mode", text="")
op = row.operator("bim.select_clash_source", icon="FILE_FOLDER", text="")
op.index = index
op.group = "b"
op = row.operator("bim.remove_clash_source", icon="X", text="")
op.index = index
op.group = "b"
if source.mode != "a":
bonsai.bim.helper.draw_filter(
layout, source.filter_groups, ClashData, f"clash_{props.active_clash_set_index}_b_{index}"
)
row = layout.row() row = layout.row()
row.prop(props, "should_create_clash_snapshots") row.prop(props, "should_create_clash_snapshots")