mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
fixed enum item set_value
This commit is contained in:
parent
554fab18c8
commit
58b74d1a68
1 changed files with 26 additions and 5 deletions
|
|
@ -336,21 +336,41 @@ class EnumEntity(InputEntity):
|
|||
if not self.enum_items:
|
||||
raise ValueError("Attribute `enum_items` is not defined.")
|
||||
|
||||
valid_keys = set()
|
||||
for item in self.enum_items:
|
||||
valid_keys.add(tuple(item.keys())[0])
|
||||
|
||||
self.valid_keys = valid_keys
|
||||
|
||||
if self.multiselection:
|
||||
self.valid_value_types = (list, )
|
||||
self.value_on_not_set = []
|
||||
else:
|
||||
valid_value_types = set()
|
||||
for item in self.enum_items:
|
||||
for key in valid_keys:
|
||||
if self.value_on_not_set is NOT_SET:
|
||||
self.value_on_not_set = item
|
||||
valid_value_types.add(type(item))
|
||||
self.value_on_not_set = key
|
||||
valid_value_types.add(type(key))
|
||||
|
||||
self.valid_value_types = tuple(valid_value_types)
|
||||
|
||||
# GUI attribute
|
||||
self.placeholder = self.schema_data.get("placeholder")
|
||||
|
||||
def schema_validations(self):
|
||||
enum_keys = set()
|
||||
for item in self.enum_items:
|
||||
key = tuple(item.keys())[0]
|
||||
if key in enum_keys:
|
||||
raise ValueError(
|
||||
"{}: Key \"{}\" is more than once in enum items.".format(
|
||||
self.path, key
|
||||
)
|
||||
)
|
||||
enum_keys.add(key)
|
||||
|
||||
super(EnumEntity, self).schema_validations()
|
||||
|
||||
def set_value(self, value):
|
||||
if self.multiselection:
|
||||
if not isinstance(value, list):
|
||||
|
|
@ -363,13 +383,14 @@ class EnumEntity(InputEntity):
|
|||
check_values = [value]
|
||||
|
||||
for item in check_values:
|
||||
if item not in self.enum_items:
|
||||
if item not in self.valid_keys:
|
||||
raise ValueError(
|
||||
"Invalid value \"{}\". Expected: {}".format(
|
||||
item, self.enum_items
|
||||
item, self.valid_keys
|
||||
)
|
||||
)
|
||||
self._current_value = value
|
||||
self.on_value_change()
|
||||
|
||||
|
||||
class TextEntity(InputEntity):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue