|
|
@@ -21,8 +21,6 @@ Color normalTextColor(1.0f, 1.0f, 1.0f);
|
|
|
Color modifiedTextColor(1.0f, 0.8f, 0.5f);
|
|
|
Color nonEditableTextColor(0.7f, 0.7f, 0.7f);
|
|
|
|
|
|
-const String DIFF_VALUE("---");
|
|
|
-
|
|
|
String sceneResourcePath;
|
|
|
|
|
|
UIElement@ SetEditable(UIElement@ element, bool editable)
|
|
|
@@ -36,7 +34,7 @@ UIElement@ SetEditable(UIElement@ element, bool editable)
|
|
|
|
|
|
UIElement@ SetValue(LineEdit@ element, const String&in value, bool sameValue)
|
|
|
{
|
|
|
- element.text = sameValue ? value : DIFF_VALUE;
|
|
|
+ element.text = sameValue ? value : "---";
|
|
|
element.cursorPosition = 0;
|
|
|
return element;
|
|
|
}
|
|
|
@@ -95,12 +93,11 @@ UIElement@ CreateAttributeEditorParent(ListView@ list, const String&in name, uin
|
|
|
return editorParent;
|
|
|
}
|
|
|
|
|
|
-LineEdit@ CreateAttributeLineEdit(UIElement@ parent, Array<Serializable@>@ serializables, bool editable, uint index, uint subIndex)
|
|
|
+LineEdit@ CreateAttributeLineEdit(UIElement@ parent, Array<Serializable@>@ serializables, uint index, uint subIndex)
|
|
|
{
|
|
|
LineEdit@ attrEdit = LineEdit();
|
|
|
attrEdit.SetStyle(uiStyle, "EditorAttributeEdit");
|
|
|
attrEdit.SetFixedHeight(ATTR_HEIGHT - 2);
|
|
|
- SetEditable(attrEdit, editable);
|
|
|
attrEdit.vars["Index"] = index;
|
|
|
attrEdit.vars["SubIndex"] = subIndex;
|
|
|
SetAttributeEditorID(attrEdit, serializables);
|
|
|
@@ -108,29 +105,28 @@ LineEdit@ CreateAttributeLineEdit(UIElement@ parent, Array<Serializable@>@ seria
|
|
|
return attrEdit;
|
|
|
}
|
|
|
|
|
|
-void CreateAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, bool editable, uint index)
|
|
|
+void CreateAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, uint index)
|
|
|
{
|
|
|
AttributeInfo info = serializables[0].attributeInfos[index];
|
|
|
- CreateAttributeEditor(list, serializables, info.name, info.type, info.enumNames, editable, index, 0);
|
|
|
+ CreateAttributeEditor(list, serializables, info.name, info.type, info.enumNames, index, 0);
|
|
|
}
|
|
|
|
|
|
-UIElement@ CreateStringAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, bool editable, uint index, uint subIndex)
|
|
|
+UIElement@ CreateStringAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, uint index, uint subIndex)
|
|
|
{
|
|
|
UIElement@ parent = CreateAttributeEditorParent(list, name, index, subIndex);
|
|
|
- LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, editable, index, subIndex);
|
|
|
+ LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, index, subIndex);
|
|
|
attrEdit.dragDropMode = DD_TARGET;
|
|
|
SubscribeToEvent(attrEdit, "TextChanged", "EditAttribute");
|
|
|
SubscribeToEvent(attrEdit, "TextFinished", "EditAttribute");
|
|
|
return parent;
|
|
|
}
|
|
|
|
|
|
-UIElement@ CreateBoolAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, bool editable, uint index, uint subIndex)
|
|
|
+UIElement@ CreateBoolAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, uint index, uint subIndex)
|
|
|
{
|
|
|
UIElement@ parent = CreateAttributeEditorParent(list, name, index, subIndex);
|
|
|
CheckBox@ attrEdit = CheckBox();
|
|
|
attrEdit.style = uiStyle;
|
|
|
attrEdit.SetFixedSize(16, 16);
|
|
|
- SetEditable(attrEdit, editable);
|
|
|
attrEdit.vars["Index"] = index;
|
|
|
attrEdit.vars["SubIndex"] = subIndex;
|
|
|
SetAttributeEditorID(attrEdit, serializables);
|
|
|
@@ -139,7 +135,7 @@ UIElement@ CreateBoolAttributeEditor(ListView@ list, Array<Serializable@>@ seria
|
|
|
return parent;
|
|
|
}
|
|
|
|
|
|
-UIElement@ CreateNumAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, bool editable, uint index, uint subIndex)
|
|
|
+UIElement@ CreateNumAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, uint index, uint subIndex)
|
|
|
{
|
|
|
UIElement@ parent = CreateAttributeEditorParent(list, name, index, subIndex);
|
|
|
uint numCoords = type - VAR_FLOAT + 1;
|
|
|
@@ -152,21 +148,21 @@ UIElement@ CreateNumAttributeEditor(ListView@ list, Array<Serializable@>@ serial
|
|
|
|
|
|
for (uint i = 0; i < numCoords; ++i)
|
|
|
{
|
|
|
- LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, editable, index, subIndex);
|
|
|
+ LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, index, subIndex);
|
|
|
SubscribeToEvent(attrEdit, "TextChanged", "EditAttribute");
|
|
|
SubscribeToEvent(attrEdit, "TextFinished", "EditAttribute");
|
|
|
}
|
|
|
return parent;
|
|
|
}
|
|
|
|
|
|
-UIElement@ CreateIntAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, bool editable, uint index, uint subIndex)
|
|
|
+UIElement@ CreateIntAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, uint index, uint subIndex)
|
|
|
{
|
|
|
UIElement@ parent = CreateAttributeEditorParent(list, name, index, subIndex);
|
|
|
// Check for enums
|
|
|
if (enumNames is null || enumNames.empty)
|
|
|
{
|
|
|
// No enums, create a numeric editor
|
|
|
- LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, editable, index, subIndex);
|
|
|
+ LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, index, subIndex);
|
|
|
SubscribeToEvent(attrEdit, "TextChanged", "EditAttribute");
|
|
|
SubscribeToEvent(attrEdit, "TextFinished", "EditAttribute");
|
|
|
}
|
|
|
@@ -176,7 +172,6 @@ UIElement@ CreateIntAttributeEditor(ListView@ list, Array<Serializable@>@ serial
|
|
|
attrEdit.style = uiStyle;
|
|
|
attrEdit.SetFixedHeight(ATTR_HEIGHT - 2);
|
|
|
attrEdit.resizePopup = true;
|
|
|
- SetEditable(attrEdit, editable);
|
|
|
attrEdit.vars["Index"] = index;
|
|
|
attrEdit.vars["SubIndex"] = subIndex;
|
|
|
attrEdit.SetLayout(LM_HORIZONTAL, 0, IntRect(4, 1, 4, 1));
|
|
|
@@ -196,7 +191,7 @@ UIElement@ CreateIntAttributeEditor(ListView@ list, Array<Serializable@>@ serial
|
|
|
return parent;
|
|
|
}
|
|
|
|
|
|
-UIElement@ CreateResourceRefAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, bool editable, uint index, uint subIndex, bool suppressedSeparatedLabel = false)
|
|
|
+UIElement@ CreateResourceRefAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, uint index, uint subIndex, bool suppressedSeparatedLabel = false)
|
|
|
{
|
|
|
UIElement@ parent;
|
|
|
ShortStringHash resourceType;
|
|
|
@@ -216,14 +211,13 @@ UIElement@ CreateResourceRefAttributeEditor(ListView@ list, Array<Serializable@>
|
|
|
container.SetFixedHeight(ATTR_HEIGHT);
|
|
|
parent.AddChild(container);
|
|
|
|
|
|
- LineEdit@ attrEdit = CreateAttributeLineEdit(container, serializables, editable, index, subIndex);
|
|
|
+ LineEdit@ attrEdit = CreateAttributeLineEdit(container, serializables, index, subIndex);
|
|
|
attrEdit.vars["Type"] = resourceType.value;
|
|
|
SubscribeToEvent(attrEdit, "TextFinished", "EditAttribute");
|
|
|
|
|
|
Button@ pickButton = Button();
|
|
|
pickButton.style = uiStyle;
|
|
|
pickButton.SetFixedSize(36, ATTR_HEIGHT - 2);
|
|
|
- SetEditable(pickButton, editable);
|
|
|
pickButton.vars["Index"] = index;
|
|
|
pickButton.vars["SubIndex"] = subIndex;
|
|
|
SetAttributeEditorID(pickButton, serializables);
|
|
|
@@ -253,26 +247,26 @@ UIElement@ CreateResourceRefAttributeEditor(ListView@ list, Array<Serializable@>
|
|
|
return parent;
|
|
|
}
|
|
|
|
|
|
-UIElement@ CreateAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, bool editable, uint index, uint subIndex, bool suppressedSeparatedLabel = false)
|
|
|
+UIElement@ CreateAttributeEditor(ListView@ list, Array<Serializable@>@ serializables, const String&in name, VariantType type, Array<String>@ enumNames, uint index, uint subIndex, bool suppressedSeparatedLabel = false)
|
|
|
{
|
|
|
UIElement@ parent;
|
|
|
|
|
|
AttributeInfo info = serializables[0].attributeInfos[index];
|
|
|
if (type == VAR_STRING || type == VAR_BUFFER)
|
|
|
- parent = CreateStringAttributeEditor(list, serializables, name, type, enumNames, editable, index, subIndex);
|
|
|
+ parent = CreateStringAttributeEditor(list, serializables, name, type, enumNames, index, subIndex);
|
|
|
else if (type == VAR_BOOL)
|
|
|
- parent = CreateBoolAttributeEditor(list, serializables, name, type, enumNames, editable, index, subIndex);
|
|
|
+ parent = CreateBoolAttributeEditor(list, serializables, name, type, enumNames, index, subIndex);
|
|
|
else if ((type >= VAR_FLOAT && type <= VAR_VECTOR4) || type == VAR_QUATERNION || type == VAR_COLOR || type == VAR_INTVECTOR2 || type == VAR_INTRECT)
|
|
|
- parent = CreateNumAttributeEditor(list, serializables, name, type, enumNames, editable, index, subIndex);
|
|
|
+ parent = CreateNumAttributeEditor(list, serializables, name, type, enumNames, index, subIndex);
|
|
|
else if (type == VAR_INT)
|
|
|
- parent = CreateIntAttributeEditor(list, serializables, name, type, enumNames, editable, index, subIndex);
|
|
|
+ parent = CreateIntAttributeEditor(list, serializables, name, type, enumNames, index, subIndex);
|
|
|
else if (type == VAR_RESOURCEREF)
|
|
|
- parent = CreateResourceRefAttributeEditor(list, serializables, name, type, enumNames, editable, index, subIndex, suppressedSeparatedLabel);
|
|
|
+ parent = CreateResourceRefAttributeEditor(list, serializables, name, type, enumNames, index, subIndex, suppressedSeparatedLabel);
|
|
|
else if (type == VAR_RESOURCEREFLIST)
|
|
|
{
|
|
|
uint numRefs = serializables[0].attributes[index].GetResourceRefList().length;
|
|
|
for (uint i = 0; i < numRefs; ++i)
|
|
|
- CreateAttributeEditor(list, serializables, name, VAR_RESOURCEREF, null, editable, index, i, i > 0);
|
|
|
+ CreateAttributeEditor(list, serializables, name, VAR_RESOURCEREF, null, index, i, i > 0);
|
|
|
}
|
|
|
else if (type == VAR_VARIANTVECTOR)
|
|
|
{
|
|
|
@@ -284,7 +278,7 @@ UIElement@ CreateAttributeEditor(ListView@ list, Array<Serializable@>@ serializa
|
|
|
Array<Variant>@ vector = serializables[0].attributes[index].GetVariantVector();
|
|
|
for (uint i = 0; i < vector.length; ++i)
|
|
|
{
|
|
|
- CreateAttributeEditor(list, serializables, vectorStruct.variableNames[nameIndex], vector[i].type, null, editable, index, i);
|
|
|
+ CreateAttributeEditor(list, serializables, vectorStruct.variableNames[nameIndex], vector[i].type, null, index, i);
|
|
|
++nameIndex;
|
|
|
if (nameIndex >= vectorStruct.variableNames.length)
|
|
|
nameIndex = vectorStruct.restartIndex;
|
|
|
@@ -297,7 +291,7 @@ UIElement@ CreateAttributeEditor(ListView@ list, Array<Serializable@>@ serializa
|
|
|
for (uint i = 0; i < keys.length; ++i)
|
|
|
{
|
|
|
Variant value = map[keys[i]];
|
|
|
- parent = CreateAttributeEditor(list, serializables, scene.GetVarName(keys[i]) + " (Var)", value.type, null, editable, index, i);
|
|
|
+ parent = CreateAttributeEditor(list, serializables, scene.GetVarName(keys[i]) + " (Var)", value.type, null, index, i);
|
|
|
// Add the variant key to the parent
|
|
|
parent.vars["Key"] = keys[i].value;
|
|
|
}
|
|
|
@@ -627,7 +621,7 @@ void UpdateAttributes(Array<Serializable@>@ serializables, ListView@ list, bool
|
|
|
continue;
|
|
|
|
|
|
if (fullUpdate)
|
|
|
- CreateAttributeEditor(list, serializables, info.mode & AM_NOEDIT == 0, i);
|
|
|
+ CreateAttributeEditor(list, serializables, i);
|
|
|
|
|
|
LoadAttributeEditor(list, serializables, info.mode & AM_NOEDIT == 0, i);
|
|
|
}
|