From 0f421da6e3670984c90caf2b72753b9fd290a7e9 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 11 Nov 2024 12:48:37 +0500 Subject: [PATCH] Multifile properties to show selected paths Before - https://i.imgur.com/AkPvTy3.png After - https://i.imgur.com/znxLqb7.png --- src/bonsai/bonsai/bim/prop.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/bonsai/bonsai/bim/prop.py b/src/bonsai/bonsai/bim/prop.py index 2bb35c3fce..8259b9d31b 100644 --- a/src/bonsai/bonsai/bim/prop.py +++ b/src/bonsai/bonsai/bim/prop.py @@ -184,15 +184,25 @@ class MultipleFileSelect(PropertyGroup): new.name = os.path.join(dirname, f) def layout_file_select(self, layout: bpy.types.UILayout, filter_glob: str = "", text: str = "") -> None: - if len(self.file_list) > 1: - layout.label(text=f"{len(self.file_list)} Files Selected") + # NOTE: current multifile selector design doesn't allow selecting files from different folders. + column = layout.column(align=True) + multiple_files = len(self.file_list) > 1 + row = column.row(align=True) + if multiple_files: + row.label(text=f"{len(self.file_list)} Files Selected") else: - layout.prop(self, "single_file", text=text) + row.prop(self, "single_file", text=text) - layout.context_pointer_set("file_props", self) - op = layout.operator("bim.multiple_file_selector", icon="FILE_FOLDER", text="") + row.context_pointer_set("file_props", self) + op = row.operator("bim.multiple_file_selector", icon="FILE_FOLDER", text="") op.filter_glob = filter_glob + if not multiple_files: + return + + for file in self.file_list: + column.prop(file, "name", text="") + def update_attribute_value(self: "Attribute", context: bpy.types.Context) -> None: value_name = self.get_value_name()