mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
few modification to be able add new item
This commit is contained in:
parent
c2b8372904
commit
4e30296c80
2 changed files with 22 additions and 4 deletions
|
|
@ -633,7 +633,7 @@ class DictMutableKeysEntity(ItemEntity):
|
|||
child_obj = self.children_by_key.pop(old_key)
|
||||
self.children_by_key[new_key] = child_obj
|
||||
|
||||
def _add_child(self, key):
|
||||
def add_new_key(self, key):
|
||||
new_child = self.create_schema_object(self.item_schema, self, True)
|
||||
self.children.append(new_child)
|
||||
self.children_by_key[key] = new_child
|
||||
|
|
@ -716,7 +716,7 @@ class DictMutableKeysEntity(ItemEntity):
|
|||
# TODO Check for value type if is Settings entity?
|
||||
child_obj = self.children_by_key.get(key)
|
||||
if not child_obj:
|
||||
child_obj = self._add_child(key)
|
||||
child_obj = self.add_new_key(key)
|
||||
|
||||
child_obj.set_value(value)
|
||||
|
||||
|
|
@ -841,7 +841,7 @@ class DictMutableKeysEntity(ItemEntity):
|
|||
|
||||
# Create new children
|
||||
for _key, _value in self._current_value.items():
|
||||
child_obj = self._add_child(_key)
|
||||
child_obj = self.add_new_key(_key)
|
||||
child_obj.update_default_value(_value)
|
||||
if using_overrides:
|
||||
if state is OverrideState.STUDIO:
|
||||
|
|
|
|||
|
|
@ -532,11 +532,29 @@ class DictMutableKeysWidget(BaseWidget):
|
|||
# TODO implement
|
||||
pass
|
||||
|
||||
def add_new_key(self, key, label=None, after_widget=None):
|
||||
new_widget_index = 0
|
||||
if self.input_fields:
|
||||
if not after_widget:
|
||||
after_widget = self.input_fields[-1]
|
||||
|
||||
for idx in self.content_layout.count():
|
||||
item = self.content_layout.itemAt(idx)
|
||||
if item.widget() is after_widget:
|
||||
new_widget_index = idx
|
||||
break
|
||||
child_entity = self.entity.add_new_key(key)
|
||||
widget = ModifiableDictItem(
|
||||
self.entity.collapsible, child_entity, self
|
||||
)
|
||||
self.input_fields.append(widget)
|
||||
self.content_layout.insertWidget(new_widget_index, widget)
|
||||
return widget
|
||||
|
||||
def _on_entity_change(self):
|
||||
print("_on_entity_change", self.__class__.__name__, self.entity.path)
|
||||
|
||||
|
||||
|
||||
class ModifiableDict(QtWidgets.QWidget):
|
||||
def create_ui(self, label_widget=None):
|
||||
if self.hightlight_content:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue