Add Variant to string for Enums to use scripting enum items names
This commit is contained in:
@@ -2433,7 +2433,21 @@ String Variant::ToString() const
|
|||||||
case VariantType::Int:
|
case VariantType::Int:
|
||||||
return StringUtils::ToString(AsInt);
|
return StringUtils::ToString(AsInt);
|
||||||
case VariantType::Uint:
|
case VariantType::Uint:
|
||||||
|
return StringUtils::ToString(AsUint);
|
||||||
case VariantType::Enum:
|
case VariantType::Enum:
|
||||||
|
if (Type.TypeName)
|
||||||
|
{
|
||||||
|
const ScriptingTypeHandle typeHandle = Scripting::FindScriptingType(StringAnsiView(Type.TypeName));
|
||||||
|
if (typeHandle && typeHandle.GetType().Type == ScriptingTypes::Enum)
|
||||||
|
{
|
||||||
|
const auto items = typeHandle.GetType().Enum.Items;
|
||||||
|
for (int32 i = 0; items[i].Name; i++)
|
||||||
|
{
|
||||||
|
if (items[i].Value == AsUint)
|
||||||
|
return String(items[i].Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return StringUtils::ToString(AsUint);
|
return StringUtils::ToString(AsUint);
|
||||||
case VariantType::Int64:
|
case VariantType::Int64:
|
||||||
return StringUtils::ToString(AsInt64);
|
return StringUtils::ToString(AsInt64);
|
||||||
|
|||||||
Reference in New Issue
Block a user