mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Merge pull request #1531 from ynput/bugfix/1530-multi-selections-of-export-texture-sets-and-channels-fails-to-restore-for-an-instance
Publisher: Multiselection EnumDef does not loose values
This commit is contained in:
commit
2e09a7e713
3 changed files with 12 additions and 6 deletions
|
|
@ -604,7 +604,11 @@ class EnumDef(AbstractAttrDef):
|
|||
|
||||
if value is None:
|
||||
return copy.deepcopy(self.default)
|
||||
return list(self._item_values.intersection(value))
|
||||
return [
|
||||
v
|
||||
for v in value
|
||||
if v in self._item_values
|
||||
]
|
||||
|
||||
def is_value_valid(self, value: Any) -> bool:
|
||||
"""Check if item is available in possible values."""
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ class AttributeValues:
|
|||
if value is None:
|
||||
continue
|
||||
converted_value = attr_def.convert_value(value)
|
||||
# QUESTION Could we just use converted value all the time?
|
||||
if converted_value == value:
|
||||
self._data[attr_def.key] = value
|
||||
|
||||
|
|
@ -245,11 +246,11 @@ class AttributeValues:
|
|||
|
||||
def _update(self, value):
|
||||
changes = {}
|
||||
for key, value in dict(value).items():
|
||||
if key in self._data and self._data.get(key) == value:
|
||||
for key, key_value in dict(value).items():
|
||||
if key in self._data and self._data.get(key) == key_value:
|
||||
continue
|
||||
self._data[key] = value
|
||||
changes[key] = value
|
||||
self._data[key] = key_value
|
||||
changes[key] = key_value
|
||||
return changes
|
||||
|
||||
def _pop(self, key, default):
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import logging
|
||||
import re
|
||||
import copy
|
||||
from typing import (
|
||||
Union,
|
||||
List,
|
||||
|
|
@ -1098,7 +1099,7 @@ class CreateModel:
|
|||
creator_attributes[key] = attr_def.default
|
||||
|
||||
elif attr_def.is_value_valid(value):
|
||||
creator_attributes[key] = value
|
||||
creator_attributes[key] = copy.deepcopy(value)
|
||||
|
||||
def _set_instances_publish_attr_values(
|
||||
self, instance_ids, plugin_name, key, value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue