fixed few issues of loaded data

This commit is contained in:
iLLiCiTiT 2020-11-27 19:01:25 +01:00
parent 6903865976
commit 0b18f1cce3
3 changed files with 19 additions and 2 deletions

View file

@ -9,6 +9,8 @@ log = logging.getLogger(__name__)
M_OVERRIDEN_KEY = "__overriden_keys__"
# Metadata key for storing information about environments
M_ENVIRONMENT_KEY = "__environment_keys__"
# Metadata key for storing dynamic created labels
M_DYNAMIC_KEY_LABEL = "__dynamic_keys_labels__"
# NOTE key popping not implemented yet
M_POP_KEY = "__pop_key__"

View file

@ -2034,7 +2034,6 @@ class ModifiableDictItem(QtWidgets.QWidget, SettingObject):
add_btn.setFixedSize(self._btn_size, self._btn_size)
edit_btn = None
remove_btn = None
if self.labeled_items:
edit_btn = IconButton(
"fa.edit", QtCore.Qt.lightGray, QtCore.Qt.white
@ -2049,6 +2048,9 @@ class ModifiableDictItem(QtWidgets.QWidget, SettingObject):
remove_btn.setFixedSize(self._btn_size, self._btn_size)
if self.labeled_items:
add_btn.setVisible(False)
remove_btn.setVisible(False)
wrapper_widget.add_widget_before_label(add_btn)
wrapper_widget.add_widget_before_label(edit_btn)
wrapper_widget.add_widget_after_label(key_input)
@ -2422,6 +2424,8 @@ class ModifiableDict(QtWidgets.QWidget, InputObject):
previous_inputs = tuple(self.input_fields)
for item_key, item_value in value.items():
self.add_row(key=item_key, value=item_value)
if self.labeled_items:
self.add_row(is_empty=True)
for input_field in previous_inputs:
self.remove_row(input_field)

View file

@ -2,7 +2,11 @@ import os
import re
import json
import copy
from pype.settings.lib import M_OVERRIDEN_KEY, M_ENVIRONMENT_KEY
from pype.settings.lib import (
M_OVERRIDEN_KEY,
M_ENVIRONMENT_KEY,
M_DYNAMIC_KEY_LABEL
)
from queue import Queue
@ -35,6 +39,8 @@ def convert_gui_data_with_metadata(data, ignored_keys=None):
if key == "environments":
output[M_ENVIRONMENT_KEY] = value
elif key == "dynamic_key_label":
output[M_DYNAMIC_KEY_LABEL] = value
else:
raise KeyError("Unknown metadata key \"{}\"".format(key))
@ -51,6 +57,11 @@ def convert_data_to_gui_data(data, first=True):
if M_ENVIRONMENT_KEY in data:
data.pop(M_ENVIRONMENT_KEY)
if M_DYNAMIC_KEY_LABEL in data:
if METADATA_KEY not in data:
data[METADATA_KEY] = {}
data[METADATA_KEY]["dynamic_key_label"] = data.pop(M_DYNAMIC_KEY_LABEL)
for key, value in data.items():
output[key] = convert_data_to_gui_data(value, False)