summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Doroshenko (Xrayez) <xrayez@gmail.com>2019-06-28 23:42:26 +0300
committerAndrii Doroshenko (Xrayez) <xrayez@gmail.com>2019-06-28 23:42:26 +0300
commit7c11a1b162f9f1ac5ad8b8e2a879a200b22603d0 (patch)
tree36bb2d3bdfa58727b0279681ab4fb1d3d27f35b0
parent6e03236574467d6a0c3aca1b0375da59423b0083 (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--SConstruct18
-rw-r--r--editor/icons/SCsub10
-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