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.
This commit is contained in:
Andrii Doroshenko (Xrayez) 2019-06-28 23:42:26 +03:00
parent 6e03236574
commit 7c11a1b162
16 changed files with 23 additions and 5 deletions

View file

@ -399,6 +399,7 @@ if selected_platform in platform_list:
sys.modules.pop('detect') sys.modules.pop('detect')
env.module_list = [] env.module_list = []
env.module_icons_paths = []
env.doc_class_path = {} env.doc_class_path = {}
for x in module_list: for x in module_list:
@ -421,13 +422,22 @@ if selected_platform in platform_list:
if (can_build): if (can_build):
config.configure(env) config.configure(env)
env.module_list.append(x) env.module_list.append(x)
# Get doc classes paths (if present)
try: try:
doc_classes = config.get_doc_classes() doc_classes = config.get_doc_classes()
doc_path = config.get_doc_path() doc_path = config.get_doc_path()
for c in doc_classes: for c in doc_classes:
env.doc_class_path[c] = "modules/" + x + "/" + doc_path env.doc_class_path[c] = "modules/" + x + "/" + doc_path
except: except:
pass 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.path.remove(tmppath)
sys.modules.pop('config') sys.modules.pop('config')

View file

@ -10,4 +10,12 @@ make_editor_icons_builder = Builder(action=run_in_subprocess(editor_icons_builde
src_suffix='.svg') src_suffix='.svg')
env['BUILDERS']['MakeEditorIconsBuilder'] = make_editor_icons_builder 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)])

View file

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 754 B

View file

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

View file

Before

Width:  |  Height:  |  Size: 649 B

After

Width:  |  Height:  |  Size: 649 B

View file

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

Before

Width:  |  Height:  |  Size: 941 B

After

Width:  |  Height:  |  Size: 941 B

View file

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

View file

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 725 B

View file

Before

Width:  |  Height:  |  Size: 713 B

After

Width:  |  Height:  |  Size: 713 B

View file

Before

Width:  |  Height:  |  Size: 786 B

After

Width:  |  Height:  |  Size: 786 B

View file

Before

Width:  |  Height:  |  Size: 300 B

After

Width:  |  Height:  |  Size: 300 B

View file

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 332 B

View file

Before

Width:  |  Height:  |  Size: 794 B

After

Width:  |  Height:  |  Size: 794 B