mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
split methods to be able use them without self changes
This commit is contained in:
parent
e1545aec8e
commit
436cd71707
1 changed files with 31 additions and 22 deletions
|
|
@ -534,35 +534,18 @@ class DictMutableKeysWidget(BaseWidget):
|
|||
pass
|
||||
|
||||
def add_new_key(self, key, label=None, after_widget=None):
|
||||
new_widget_index = len(self.input_fields)
|
||||
if self.input_fields:
|
||||
if not after_widget:
|
||||
after_widget = self.input_fields[-1]
|
||||
|
||||
for idx in range(self.content_layout.count()):
|
||||
item = self.content_layout.itemAt(idx)
|
||||
if item.widget() is after_widget:
|
||||
new_widget_index = idx + 1
|
||||
break
|
||||
|
||||
if not key:
|
||||
key = str(uuid4())
|
||||
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)
|
||||
|
||||
widget = self.add_widget_for_child(child_entity, after_widget)
|
||||
self.on_shuffle()
|
||||
|
||||
return widget
|
||||
|
||||
def remove_row(self, widget):
|
||||
self.input_fields.remove(widget)
|
||||
self.content_layout.removeWidget(widget)
|
||||
widget.deleteLater()
|
||||
self.on_shuffle()
|
||||
def remove_key(self, widget):
|
||||
key = self.entity.get_child_key(widget.entity)
|
||||
self.entity.pop(key)
|
||||
self.remove_row(widget)
|
||||
|
||||
def change_key(self, new_key, widget):
|
||||
if not new_key or widget.is_key_duplicated:
|
||||
|
|
@ -608,6 +591,32 @@ class DictMutableKeysWidget(BaseWidget):
|
|||
self.entity.children_by_key[sk_new_key]
|
||||
)
|
||||
|
||||
def add_widget_for_child(self, child_entity, after_widget=None):
|
||||
new_widget_index = len(self.input_fields)
|
||||
if self.input_fields:
|
||||
if not after_widget:
|
||||
after_widget = self.input_fields[-1]
|
||||
|
||||
for idx in range(self.content_layout.count()):
|
||||
item = self.content_layout.itemAt(idx)
|
||||
if item.widget() is after_widget:
|
||||
new_widget_index = idx + 1
|
||||
break
|
||||
|
||||
widget = ModifiableDictItem(
|
||||
self.entity.collapsible, child_entity, self
|
||||
)
|
||||
self.input_fields.append(widget)
|
||||
self.content_layout.insertWidget(new_widget_index, widget)
|
||||
|
||||
return widget
|
||||
|
||||
def remove_row(self, widget):
|
||||
self.input_fields.remove(widget)
|
||||
self.content_layout.removeWidget(widget)
|
||||
widget.deleteLater()
|
||||
self.on_shuffle()
|
||||
|
||||
def validate_key_duplication(self, old_key, new_key, widget):
|
||||
old_key_items = []
|
||||
duplicated_items = []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue