diff --git a/openpype/settings/entities/enum_entity.py b/openpype/settings/entities/enum_entity.py index 050f0038f70..d197683afe3 100644 --- a/openpype/settings/entities/enum_entity.py +++ b/openpype/settings/entities/enum_entity.py @@ -124,34 +124,38 @@ def _item_initalization(self): self.use_empty_value = self.schema_data.get( "use_empty_value", not self.multiselection ) - self.empty_label = ( - self.schema_data.get("empty_label") or "< without host >" - ) - - # These are hardcoded there is not list of available host in OpenPype - self.enum_items = [ - {"aftereffects": "aftereffects"}, - {"blender": "blender"}, - {"celaction": "celaction"}, - {"fusion": "fusion"}, - {"harmony": "harmony"}, - {"hiero": "hiero"}, - {"houdini": "houdini"}, - {"maya": "maya"}, - {"nuke": "nuke"}, - {"photoshop": "photoshop"}, - {"resolve": "resolve"}, - {"tvpaint": "tvpaint"}, - {"unreal": "unreal"} + custom_labels = self.schema_data.get("custom_labels") or {} + + host_names = [ + "aftereffects", + "blender", + "celaction", + "fusion", + "harmony", + "hiero", + "houdini", + "maya", + "nuke", + "photoshop", + "resolve", + "tvpaint", + "unreal" ] - if self.use_empty_value: - self.enum_items.insert(0, {"": self.empty_label}) + host_names.insert(0, "") + # Add default label for empty value if not available + if "" not in custom_labels: + custom_labels[""] = "< without host >" + # These are hardcoded there is not list of available host in OpenPype + enum_items = [] valid_keys = set() - for item in self.enum_items or []: - valid_keys.add(tuple(item.keys())[0]) + for key in host_names: + label = custom_labels.get(key, key) + valid_keys.add(key) + enum_items.append({key, label}) + self.enum_items = enum_items self.valid_keys = valid_keys if self.multiselection: diff --git a/openpype/settings/entities/schemas/README.md b/openpype/settings/entities/schemas/README.md index 0ad13bfe1a7..bbd53fa46b9 100644 --- a/openpype/settings/entities/schemas/README.md +++ b/openpype/settings/entities/schemas/README.md @@ -276,7 +276,7 @@ - enumeration of available hosts - multiselection can be allowed with setting key `"multiselection"` to `True` (Default: `False`) - it is possible to add empty value (represented with empty string) with setting `"use_empty_value"` to `True` (Default: `False`) -- to modify label of empty value set `"empty_label"` key with your label (Default: `< without host >`) +- it is possible to set `"custom_labels"` for host names where key `""` is empty value (Default: `{}`) ``` { "key": "host", @@ -284,7 +284,10 @@ "type": "hosts-enum", "multiselection": false, "use_empty_value": true, - "empty_label": "N/A" + "custom_labels": { + "": "N/A", + "nuke": "Nuke" + } } ```