diff --git a/src/bonsai/bonsai/bim/data/icons/add.png b/src/bonsai/bonsai/bim/data/icons/add.png deleted file mode 100644 index b16b90a2a8..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/add.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/add_type.png b/src/bonsai/bonsai/bim/data/icons/add_type.png deleted file mode 100644 index a303cb0067..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/add_type.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/add_void.png b/src/bonsai/bonsai/bim/data/icons/add_void.png deleted file mode 100644 index 06e6b6859c..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/add_void.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/assign.png b/src/bonsai/bonsai/bim/data/icons/assign.png deleted file mode 100644 index 7195dc0b03..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/assign.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/butt.png b/src/bonsai/bonsai/bim/data/icons/butt.png deleted file mode 100644 index 3d3531175e..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/butt.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/centerline.png b/src/bonsai/bonsai/bim/data/icons/centerline.png deleted file mode 100644 index b75f93fff8..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/centerline.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/decomposition.png b/src/bonsai/bonsai/bim/data/icons/decomposition.png deleted file mode 100644 index b63af19882..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/decomposition.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_IFC.png b/src/bonsai/bonsai/bim/data/icons/dm_IFC.png new file mode 100644 index 0000000000..d2b6e399b3 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_IFC.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_add.png b/src/bonsai/bonsai/bim/data/icons/dm_add.png new file mode 100644 index 0000000000..c6c89c7d15 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_add.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_add_type.png b/src/bonsai/bonsai/bim/data/icons/dm_add_type.png new file mode 100644 index 0000000000..899154bf95 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_add_type.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_add_void.png b/src/bonsai/bonsai/bim/data/icons/dm_add_void.png new file mode 100644 index 0000000000..9add3ea24e Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_add_void.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_assign.png b/src/bonsai/bonsai/bim/data/icons/dm_assign.png new file mode 100644 index 0000000000..cdf007a958 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_assign.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_butt.png b/src/bonsai/bonsai/bim/data/icons/dm_butt.png new file mode 100644 index 0000000000..615187620f Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_butt.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_centerline.png b/src/bonsai/bonsai/bim/data/icons/dm_centerline.png new file mode 100644 index 0000000000..9f52ff4985 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_centerline.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_centreline.png b/src/bonsai/bonsai/bim/data/icons/dm_centreline.png new file mode 100644 index 0000000000..9f52ff4985 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_centreline.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_decomposition.png b/src/bonsai/bonsai/bim/data/icons/dm_decomposition.png new file mode 100644 index 0000000000..68fbb5ff6c Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_decomposition.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_edit_axis.png b/src/bonsai/bonsai/bim/data/icons/dm_edit_axis.png new file mode 100644 index 0000000000..e804527460 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_edit_axis.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_edit_profile.png b/src/bonsai/bonsai/bim/data/icons/dm_edit_profile.png new file mode 100644 index 0000000000..458cae080c Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_edit_profile.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_extend.png b/src/bonsai/bonsai/bim/data/icons/dm_extend.png new file mode 100644 index 0000000000..7374945a28 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_extend.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_exterior.png b/src/bonsai/bonsai/bim/data/icons/dm_exterior.png new file mode 100644 index 0000000000..19533f7ce9 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_exterior.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_flip.png b/src/bonsai/bonsai/bim/data/icons/dm_flip.png new file mode 100644 index 0000000000..4a108ee2fb Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_flip.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_interior.png b/src/bonsai/bonsai/bim/data/icons/dm_interior.png new file mode 100644 index 0000000000..2771aecafb Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_interior.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_merge.png b/src/bonsai/bonsai/bim/data/icons/dm_merge.png new file mode 100644 index 0000000000..1d78bd36a0 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_merge.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_mirror.png b/src/bonsai/bonsai/bim/data/icons/dm_mirror.png new file mode 100644 index 0000000000..fb894b5898 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_mirror.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_mitre.png b/src/bonsai/bonsai/bim/data/icons/dm_mitre.png new file mode 100644 index 0000000000..552906a992 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_mitre.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_perform_quantity_take-off.png b/src/bonsai/bonsai/bim/data/icons/dm_perform_quantity_take-off.png new file mode 100644 index 0000000000..7b538234c7 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_perform_quantity_take-off.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_refresh.png b/src/bonsai/bonsai/bim/data/icons/dm_refresh.png new file mode 100644 index 0000000000..44cedbb086 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_refresh.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_regen.png b/src/bonsai/bonsai/bim/data/icons/dm_regen.png new file mode 100644 index 0000000000..79276cb2a7 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_regen.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_rotate_90.png b/src/bonsai/bonsai/bim/data/icons/dm_rotate_90.png new file mode 100644 index 0000000000..32c2e2fbdf Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_rotate_90.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_split.png b/src/bonsai/bonsai/bim/data/icons/dm_split.png new file mode 100644 index 0000000000..e33e105c70 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_split.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_unassign.png b/src/bonsai/bonsai/bim/data/icons/dm_unassign.png new file mode 100644 index 0000000000..f2148e4949 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_unassign.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_unjoin_walls.png b/src/bonsai/bonsai/bim/data/icons/dm_unjoin_walls.png new file mode 100644 index 0000000000..cb6f0f3f1f Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_unjoin_walls.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/dm_void.png b/src/bonsai/bonsai/bim/data/icons/dm_void.png new file mode 100644 index 0000000000..145bcfa38e Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/dm_void.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/edit_axis.png b/src/bonsai/bonsai/bim/data/icons/edit_axis.png deleted file mode 100644 index c3a8cfe528..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/edit_axis.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/edit_profile.png b/src/bonsai/bonsai/bim/data/icons/edit_profile.png deleted file mode 100644 index 9c78530791..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/edit_profile.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/extend.png b/src/bonsai/bonsai/bim/data/icons/extend.png deleted file mode 100644 index c0500a9ed9..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/extend.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/exterior.png b/src/bonsai/bonsai/bim/data/icons/exterior.png deleted file mode 100644 index dcec153621..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/exterior.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/flip.png b/src/bonsai/bonsai/bim/data/icons/flip.png deleted file mode 100644 index a59a7e46ba..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/flip.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/interior.png b/src/bonsai/bonsai/bim/data/icons/interior.png deleted file mode 100644 index 2dc043eeae..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/interior.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_add.png b/src/bonsai/bonsai/bim/data/icons/lm_add.png new file mode 100644 index 0000000000..8031b0577c Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_add.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_add_type.png b/src/bonsai/bonsai/bim/data/icons/lm_add_type.png new file mode 100644 index 0000000000..4fb18f4f39 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_add_type.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_add_void.png b/src/bonsai/bonsai/bim/data/icons/lm_add_void.png new file mode 100644 index 0000000000..90fba89728 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_add_void.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_assign.png b/src/bonsai/bonsai/bim/data/icons/lm_assign.png new file mode 100644 index 0000000000..13593cc58b Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_assign.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_butt.png b/src/bonsai/bonsai/bim/data/icons/lm_butt.png new file mode 100644 index 0000000000..73f33be177 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_butt.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_centerline.png b/src/bonsai/bonsai/bim/data/icons/lm_centerline.png new file mode 100644 index 0000000000..c49427f1ee Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_centerline.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_centreline.png b/src/bonsai/bonsai/bim/data/icons/lm_centreline.png new file mode 100644 index 0000000000..718f41601c Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_centreline.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_decomposition.png b/src/bonsai/bonsai/bim/data/icons/lm_decomposition.png new file mode 100644 index 0000000000..a54ae7ae05 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_decomposition.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_edit_axis.png b/src/bonsai/bonsai/bim/data/icons/lm_edit_axis.png new file mode 100644 index 0000000000..536f15cd89 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_edit_axis.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_edit_profile.png b/src/bonsai/bonsai/bim/data/icons/lm_edit_profile.png new file mode 100644 index 0000000000..16af577eec Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_edit_profile.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_extend.png b/src/bonsai/bonsai/bim/data/icons/lm_extend.png new file mode 100644 index 0000000000..afefb0e6b9 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_extend.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_exterior.png b/src/bonsai/bonsai/bim/data/icons/lm_exterior.png new file mode 100644 index 0000000000..e0ef805a04 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_exterior.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_flip.png b/src/bonsai/bonsai/bim/data/icons/lm_flip.png new file mode 100644 index 0000000000..cb5df2c97b Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_flip.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_ifc.png b/src/bonsai/bonsai/bim/data/icons/lm_ifc.png new file mode 100644 index 0000000000..d4b0f9ce0c Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_ifc.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_interior.png b/src/bonsai/bonsai/bim/data/icons/lm_interior.png new file mode 100644 index 0000000000..b9bf1c76a3 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_interior.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_merge.png b/src/bonsai/bonsai/bim/data/icons/lm_merge.png new file mode 100644 index 0000000000..0f707f1db9 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_merge.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_mirror.png b/src/bonsai/bonsai/bim/data/icons/lm_mirror.png new file mode 100644 index 0000000000..0a81d97d3f Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_mirror.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_mitre.png b/src/bonsai/bonsai/bim/data/icons/lm_mitre.png new file mode 100644 index 0000000000..b58f8d3f85 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_mitre.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_perform_quantity_take-off.png b/src/bonsai/bonsai/bim/data/icons/lm_perform_quantity_take-off.png new file mode 100644 index 0000000000..c9a3ae8ed3 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_perform_quantity_take-off.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_refresh.png b/src/bonsai/bonsai/bim/data/icons/lm_refresh.png new file mode 100644 index 0000000000..d19a113b61 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_refresh.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_regen.png b/src/bonsai/bonsai/bim/data/icons/lm_regen.png new file mode 100644 index 0000000000..3605ddc43e Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_regen.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_rotate_90.png b/src/bonsai/bonsai/bim/data/icons/lm_rotate_90.png new file mode 100644 index 0000000000..9c9dd1161e Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_rotate_90.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_split.png b/src/bonsai/bonsai/bim/data/icons/lm_split.png new file mode 100644 index 0000000000..d3709d08ee Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_split.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_unassign.png b/src/bonsai/bonsai/bim/data/icons/lm_unassign.png new file mode 100644 index 0000000000..953ffb9799 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_unassign.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_unjoin_walls.png b/src/bonsai/bonsai/bim/data/icons/lm_unjoin_walls.png new file mode 100644 index 0000000000..a67f0daa54 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_unjoin_walls.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/lm_void.png b/src/bonsai/bonsai/bim/data/icons/lm_void.png new file mode 100644 index 0000000000..68016af132 Binary files /dev/null and b/src/bonsai/bonsai/bim/data/icons/lm_void.png differ diff --git a/src/bonsai/bonsai/bim/data/icons/merge.png b/src/bonsai/bonsai/bim/data/icons/merge.png deleted file mode 100644 index 93adf4dc7d..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/merge.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/mirror.png b/src/bonsai/bonsai/bim/data/icons/mirror.png deleted file mode 100644 index 229802d7a5..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/mirror.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/mitre.png b/src/bonsai/bonsai/bim/data/icons/mitre.png deleted file mode 100644 index 3b1ecbfbf5..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/mitre.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/perform_quantity_take-off.png b/src/bonsai/bonsai/bim/data/icons/perform_quantity_take-off.png deleted file mode 100644 index 1f0e258bb2..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/perform_quantity_take-off.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/regen.png b/src/bonsai/bonsai/bim/data/icons/regen.png deleted file mode 100644 index 6b29ea3e51..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/regen.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/rotate_90.png b/src/bonsai/bonsai/bim/data/icons/rotate_90.png deleted file mode 100644 index 5733b85f83..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/rotate_90.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/split.png b/src/bonsai/bonsai/bim/data/icons/split.png deleted file mode 100644 index 45d789e45c..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/split.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/unassign.png b/src/bonsai/bonsai/bim/data/icons/unassign.png deleted file mode 100644 index 0359ca3824..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/unassign.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/unjoin_walls.png b/src/bonsai/bonsai/bim/data/icons/unjoin_walls.png deleted file mode 100644 index 16f3272c8f..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/unjoin_walls.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/data/icons/void.png b/src/bonsai/bonsai/bim/data/icons/void.png deleted file mode 100644 index 366fa9eb9d..0000000000 Binary files a/src/bonsai/bonsai/bim/data/icons/void.png and /dev/null differ diff --git a/src/bonsai/bonsai/bim/module/model/__init__.py b/src/bonsai/bonsai/bim/module/model/__init__.py index ca91b7aacc..a5e4566c81 100644 --- a/src/bonsai/bonsai/bim/module/model/__init__.py +++ b/src/bonsai/bonsai/bim/module/model/__init__.py @@ -231,6 +231,7 @@ def unregister(): bpy.utils.unregister_tool(workspace.CableCarrierTool) bpy.utils.unregister_tool(workspace.CableTool) bpy.utils.unregister_tool(workspace.BimTool) + del bpy.types.Scene.BIMModelProperties del bpy.types.Object.BIMArrayProperties del bpy.types.Object.BIMStairProperties @@ -239,7 +240,9 @@ def unregister(): del bpy.types.Object.BIMDoorProperties del bpy.types.Object.BIMRailingProperties del bpy.types.Object.BIMRoofProperties + bpy.app.handlers.load_post.remove(handler.load_post) bpy.types.VIEW3D_MT_mesh_add.remove(ui.add_mesh_object_menu) bpy.types.VIEW3D_MT_add.remove(ui.add_menu) + workspace.unload_custom_icons() \ No newline at end of file diff --git a/src/bonsai/bonsai/bim/module/model/workspace.py b/src/bonsai/bonsai/bim/module/model/workspace.py index 4f97d07f89..b74141b62c 100644 --- a/src/bonsai/bonsai/bim/module/model/workspace.py +++ b/src/bonsai/bonsai/bim/module/model/workspace.py @@ -29,16 +29,36 @@ from bonsai.bim.module.model.data import AuthoringData from bonsai.bim.module.system.data import PortData from bonsai.bim.module.model.prop import get_ifc_class -custom_icon_previews = None + +def check_display_mode(): + global display_mode + try: + theme = bpy.context.preferences.themes['Default'] + text_color = theme.user_interface.wcol_menu_item.text + background_color = theme.user_interface.wcol_menu_item.outline + print(f"text_color = {text_color}") + print(f"background_color = {background_color}") + if sum(text_color) < 2.6: + display_mode = "lm" + else: + display_mode = "dm" + except: + display_mode = "dm" def load_custom_icons(): global custom_icon_previews + if display_mode is None: + check_display_mode() + icons_dir = os.path.join(os.path.dirname(__file__), "..", "..", "data", "icons") custom_icon_previews = bpy.utils.previews.new() + + prefix = f"{display_mode}_" + for entry in os.scandir(icons_dir): - if entry.name.endswith(".png"): - name = os.path.splitext(entry.name)[0] + if entry.name.endswith(".png") and entry.name.startswith(prefix): + name = os.path.splitext(entry.name)[0].replace(prefix, "", 1) custom_icon_previews.load(name.upper(), entry.path, "IMAGE") @@ -240,13 +260,6 @@ class CableTool(BimTool): BimToolUI.draw(context, layout, ifc_element_type=cls.ifc_element_type) -MODIFIERS = { - "A": ("EVENT_ALT", "OPTION" if sys.platform == "Darwin" else "ALT"), - "C": ("EVENT_CTRL", "CTRL"), - "S": ("EVENT_SHIFT", "⇧"), -} - - def add_layout_hotkey_operator(layout, text, hotkey, description, ui_context=""): modifier, key = hotkey.split("_") @@ -816,7 +829,7 @@ class BimToolUI: row = cls.layout.row(align=True) if AuthoringData.data["relating_type_id"]: prop_with_search(row, cls.props, "relating_type_id", text="") - row.operator("bim.add_constr_type_instance", text=text, icon_value=custom_icon_previews["ADD"].icon_id) + row.operator("bim.add_constr_type_instance", text=text, icon_value=custom_icon_previews[f"ADD"].icon_id) else: row.label(text="No Construction Type", icon="FILE_3D") @@ -1168,6 +1181,13 @@ class Hotkey(bpy.types.Operator, tool.Ifc.Operator): else: bpy.ops.bim.show_openings() +custom_icon_previews = None +display_mode = None LIST_OF_TOOLS = [cls.bl_idname for cls in (BimTool.__subclasses__() + [BimTool])] TOOLS_TO_CLASSES_MAP = {cls.bl_idname: cls.ifc_element_type for cls in BimTool.__subclasses__()} +MODIFIERS = { + "A": ("EVENT_ALT", "OPTION" if sys.platform == "Darwin" else "ALT"), + "C": ("EVENT_CTRL", "CTRL"), + "S": ("EVENT_SHIFT", "⇧"), +} \ No newline at end of file diff --git a/src/bonsai/scripts/bonsai_icons.svg b/src/bonsai/scripts/bonsai_icons.svg new file mode 100644 index 0000000000..75f412a65b --- /dev/null +++ b/src/bonsai/scripts/bonsai_icons.svg @@ -0,0 +1,1122 @@ + + + + diff --git a/src/bonsai/scripts/generate_png_icons.py b/src/bonsai/scripts/generate_png_icons.py new file mode 100644 index 0000000000..e2b268ac79 --- /dev/null +++ b/src/bonsai/scripts/generate_png_icons.py @@ -0,0 +1,108 @@ +# the SVG_FILE should be the file that contains all the icons (each icon should be in a unique layer group, and colored for dark mode) +# the EXPORT_FOLDER is where the png files get exported to +# the script will export dark mode version and modify colors for a light mode verion +# requires inkscape to run +# to run on mac: python3 generate_png_icons.py + +import os +import subprocess +import xml.etree.ElementTree as ET +import re + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +SVG_FILE = os.path.join(SCRIPT_DIR, 'bonsai_icons.svg') +EXPORT_FOLDER = os.path.join(SCRIPT_DIR, '..', 'bonsai', 'bim', 'data', 'icons') + +overwrite_all = False +skip_all = False + +def dark_to_light(svg_content): + svg_content = re.sub(r'#ffffff', '#434343', svg_content, flags=re.IGNORECASE) # white to drak grey + + svg_content = re.sub(r'#00d27b', '#009d5c', svg_content, flags=re.IGNORECASE) # make green darker + svg_content = re.sub(r'#009a5f', '#00663f', svg_content, flags=re.IGNORECASE) # make dark green darker + svg_content = re.sub(r'#75ffaf', '#3dff8f', svg_content, flags=re.IGNORECASE) # make light green darker + + svg_content = re.sub(r'#cce3ff', '#3391ff', svg_content, flags=re.IGNORECASE) # make blue darker + svg_content = re.sub(r'#4c9fff', '#005fcc', svg_content, flags=re.IGNORECASE) # make dark blue darker + svg_content = re.sub(r'#c9e0ff', '#80b8ff', svg_content, flags=re.IGNORECASE) # make light blue darker + + return svg_content + +def prompt_overwrite(file_path, png_name): + global overwrite_all, skip_all + + if skip_all and os.path.exists(file_path): + return 'n' + + if overwrite_all: + return 'y' + + if os.path.exists(file_path): + while True: + response = input(f"File '{png_name}' already exists.\nOverwrite? (Enter = yes, s = skip, y = yes all, n = no all): ").strip().lower() + if response in {'', 'y', 'n', 's'}: + if response == 'y': + overwrite_all = True + elif response == 'n': + skip_all = True + return response + else: + print("Invalid option. Please enter Enter, y, n, or s.") + return '' + +def export_svg_group(group_content, group_label, mode, output_folder): + temp_svg_file = os.path.join(output_folder, f'{group_label}_{mode}.svg') + svg_content = f""" + {group_content} + """ + + with open(temp_svg_file, 'w') as file: + file.write(svg_content) + + png_name = f'{mode}_{group_label}.png' + output_png_file = os.path.join(output_folder, png_name) + + user_choice = prompt_overwrite(output_png_file, png_name) + + if user_choice in {'y', ''}: + subprocess.run(['inkscape', temp_svg_file, '--export-type=png', '--export-filename=' + output_png_file]) + print(f'\033[32mExported PNG file: {output_png_file}\033[0m') + + + elif user_choice == 'n': + print(f"Skipping {png_name}") + + elif user_choice == 's': + print(f'Skipped exporting {output_png_file}.') + + os.remove(temp_svg_file) + + + +def export_svg_groups_to_png(svg_file, output_folder): + tree = ET.parse(svg_file) + root = tree.getroot() + ns = {'svg': 'http://www.w3.org/2000/svg'} + + for group in root.findall('.//svg:g', ns): + group_label = group.get('{http://www.inkscape.org/namespaces/inkscape}label') + if not group_label: + continue + + style = group.get('style', '') + if 'display:none' in style: + style = style.replace('display:none', 'display:inline') + elif 'display' not in style: + style += ';display:inline' + group.set('style', style) + + group_content = ET.tostring(group, encoding='unicode', method='xml') + export_svg_group(group_content, group_label, 'dm', output_folder) + light_mode_svg = dark_to_light(group_content) + export_svg_group(light_mode_svg, group_label, 'lm', output_folder) + +if __name__ == "__main__": + os.makedirs(EXPORT_FOLDER, exist_ok=True) + export_svg_groups_to_png(SVG_FILE, EXPORT_FOLDER)