diff options
author | Andrii Doroshenko (Xrayez) <xrayez@gmail.com> | 2019-06-28 23:42:26 +0300 |
---|---|---|
committer | Andrii Doroshenko (Xrayez) <xrayez@gmail.com> | 2019-06-28 23:42:26 +0300 |
commit | 7c11a1b162f9f1ac5ad8b8e2a879a200b22603d0 (patch) | |
tree | 36bb2d3bdfa58727b0279681ab4fb1d3d27f35b0 | |
parent | 6e03236574467d6a0c3aca1b0375da59423b0083 (diff) |
Add support for creating editor icons per module
The functionality is similar to how `doc_classes` are retrieved per module.
The build system will search for custom icons path defined per module via
`get_icons_path()` method in `config.py` or default icons path.
If such paths don't exist, only the editor's own icons will be built.
Most module icons were moved from editor/icons to respective modules.
-rw-r--r-- | SConstruct | 18 | ||||
-rw-r--r-- | editor/icons/SCsub | 10 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_box.svg (renamed from editor/icons/icon_c_s_g_box.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_capsule.svg (renamed from editor/icons/icon_c_s_g_capsule.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_combiner.svg (renamed from editor/icons/icon_c_s_g_combiner.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_cylinder.svg (renamed from editor/icons/icon_c_s_g_cylinder.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_mesh.svg (renamed from editor/icons/icon_c_s_g_mesh.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_polygon.svg (renamed from editor/icons/icon_c_s_g_polygon.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_sphere.svg (renamed from editor/icons/icon_c_s_g_sphere.svg) | 0 | ||||
-rw-r--r-- | modules/csg/icons/icon_c_s_g_torus.svg (renamed from editor/icons/icon_c_s_g_torus.svg) | 0 | ||||
-rw-r--r-- | modules/gdnative/icons/icon_g_d_native_library.svg (renamed from editor/icons/icon_g_d_native_library.svg) | 0 | ||||
-rw-r--r-- | modules/gdnative/icons/icon_native_script.svg (renamed from editor/icons/icon_native_script.svg) | 0 | ||||
-rw-r--r-- | modules/gdscript/icons/icon_g_d_script.svg (renamed from editor/icons/icon_g_d_script.svg) | 0 | ||||
-rw-r--r-- | modules/gridmap/icons/icon_grid_map.svg (renamed from editor/icons/icon_grid_map.svg) | 0 | ||||
-rw-r--r-- | modules/opensimplex/icons/icon_noise_texture.svg (renamed from editor/icons/icon_noise_texture.svg) | 0 | ||||
-rw-r--r-- | modules/visual_script/icons/icon_visual_script.svg (renamed from editor/icons/icon_visual_script.svg) | 0 |
16 files changed, 23 insertions, 5 deletions
diff --git a/SConstruct b/SConstruct index a619ea0797..c2524a4a4d 100644 --- a/SConstruct +++ b/SConstruct @@ -399,6 +399,7 @@ if selected_platform in platform_list: sys.modules.pop('detect') env.module_list = [] + env.module_icons_paths = [] env.doc_class_path = {} for x in module_list: @@ -421,13 +422,22 @@ if selected_platform in platform_list: if (can_build): config.configure(env) env.module_list.append(x) + + # Get doc classes paths (if present) try: - doc_classes = config.get_doc_classes() - doc_path = config.get_doc_path() - for c in doc_classes: - env.doc_class_path[c] = "modules/" + x + "/" + doc_path + doc_classes = config.get_doc_classes() + doc_path = config.get_doc_path() + for c in doc_classes: + env.doc_class_path[c] = "modules/" + x + "/" + doc_path except: pass + # Get icon paths (if present) + try: + icons_path = config.get_icons_path() + env.module_icons_paths.append("modules/" + x + "/" + icons_path) + except: + # Default path for module icons + env.module_icons_paths.append("modules/" + x + "/" + "icons") sys.path.remove(tmppath) sys.modules.pop('config') diff --git a/editor/icons/SCsub b/editor/icons/SCsub index 109e1aa83b..b39c74c66a 100644 --- a/editor/icons/SCsub +++ b/editor/icons/SCsub @@ -10,4 +10,12 @@ make_editor_icons_builder = Builder(action=run_in_subprocess(editor_icons_builde src_suffix='.svg') env['BUILDERS']['MakeEditorIconsBuilder'] = make_editor_icons_builder -env.Alias('editor_icons', [env.MakeEditorIconsBuilder('#editor/editor_icons.gen.h', Glob("*.svg"))]) + +# Editor's own icons +icon_sources = Glob("*.svg") + +# Module icons +for module_icons in env.module_icons_paths: + icon_sources += Glob('#' + module_icons + "/*.svg") + +env.Alias('editor_icons', [env.MakeEditorIconsBuilder('#editor/editor_icons.gen.h', icon_sources)]) diff --git a/editor/icons/icon_c_s_g_box.svg b/modules/csg/icons/icon_c_s_g_box.svg index 67e34df444..67e34df444 100644 --- a/editor/icons/icon_c_s_g_box.svg +++ b/modules/csg/icons/icon_c_s_g_box.svg diff --git a/editor/icons/icon_c_s_g_capsule.svg b/modules/csg/icons/icon_c_s_g_capsule.svg index 92a7b5a870..92a7b5a870 100644 --- a/editor/icons/icon_c_s_g_capsule.svg +++ b/modules/csg/icons/icon_c_s_g_capsule.svg diff --git a/editor/icons/icon_c_s_g_combiner.svg b/modules/csg/icons/icon_c_s_g_combiner.svg index cce2902e24..cce2902e24 100644 --- a/editor/icons/icon_c_s_g_combiner.svg +++ b/modules/csg/icons/icon_c_s_g_combiner.svg diff --git a/editor/icons/icon_c_s_g_cylinder.svg b/modules/csg/icons/icon_c_s_g_cylinder.svg index 645a74c79b..645a74c79b 100644 --- a/editor/icons/icon_c_s_g_cylinder.svg +++ b/modules/csg/icons/icon_c_s_g_cylinder.svg diff --git a/editor/icons/icon_c_s_g_mesh.svg b/modules/csg/icons/icon_c_s_g_mesh.svg index 6e940a4aa5..6e940a4aa5 100644 --- a/editor/icons/icon_c_s_g_mesh.svg +++ b/modules/csg/icons/icon_c_s_g_mesh.svg diff --git a/editor/icons/icon_c_s_g_polygon.svg b/modules/csg/icons/icon_c_s_g_polygon.svg index 71b03cb8e6..71b03cb8e6 100644 --- a/editor/icons/icon_c_s_g_polygon.svg +++ b/modules/csg/icons/icon_c_s_g_polygon.svg diff --git a/editor/icons/icon_c_s_g_sphere.svg b/modules/csg/icons/icon_c_s_g_sphere.svg index f81b566993..f81b566993 100644 --- a/editor/icons/icon_c_s_g_sphere.svg +++ b/modules/csg/icons/icon_c_s_g_sphere.svg diff --git a/editor/icons/icon_c_s_g_torus.svg b/modules/csg/icons/icon_c_s_g_torus.svg index 3d30aa47b2..3d30aa47b2 100644 --- a/editor/icons/icon_c_s_g_torus.svg +++ b/modules/csg/icons/icon_c_s_g_torus.svg diff --git a/editor/icons/icon_g_d_native_library.svg b/modules/gdnative/icons/icon_g_d_native_library.svg index b494c7af6e..b494c7af6e 100644 --- a/editor/icons/icon_g_d_native_library.svg +++ b/modules/gdnative/icons/icon_g_d_native_library.svg diff --git a/editor/icons/icon_native_script.svg b/modules/gdnative/icons/icon_native_script.svg index fb9e135627..fb9e135627 100644 --- a/editor/icons/icon_native_script.svg +++ b/modules/gdnative/icons/icon_native_script.svg diff --git a/editor/icons/icon_g_d_script.svg b/modules/gdscript/icons/icon_g_d_script.svg index 953bb9ae9e..953bb9ae9e 100644 --- a/editor/icons/icon_g_d_script.svg +++ b/modules/gdscript/icons/icon_g_d_script.svg diff --git a/editor/icons/icon_grid_map.svg b/modules/gridmap/icons/icon_grid_map.svg index eafe1211f2..eafe1211f2 100644 --- a/editor/icons/icon_grid_map.svg +++ b/modules/gridmap/icons/icon_grid_map.svg diff --git a/editor/icons/icon_noise_texture.svg b/modules/opensimplex/icons/icon_noise_texture.svg index 5908c2b2d4..5908c2b2d4 100644 --- a/editor/icons/icon_noise_texture.svg +++ b/modules/opensimplex/icons/icon_noise_texture.svg diff --git a/editor/icons/icon_visual_script.svg b/modules/visual_script/icons/icon_visual_script.svg index f6475d590e..f6475d590e 100644 --- a/editor/icons/icon_visual_script.svg +++ b/modules/visual_script/icons/icon_visual_script.svg |