Fixed ambiguous translation key when a property and a method share the same name

Signed-off-by: lsemp3d <58790905+lsemp3d@users.noreply.github.com>
monroegm-disable-blank-issue-2
lsemp3d 4 years ago
parent 61e2929b04
commit b12d696522

@ -9,6 +9,8 @@
#include <Translation/TranslationSerializer.h> #include <Translation/TranslationSerializer.h>
#include <Translation/TranslationAsset.h> #include <Translation/TranslationAsset.h>
#pragma optimize("", off)
namespace GraphCanvas namespace GraphCanvas
{ {
AZ_CLASS_ALLOCATOR_IMPL(TranslationFormatSerializer, AZ::SystemAllocator, 0); AZ_CLASS_ALLOCATOR_IMPL(TranslationFormatSerializer, AZ::SystemAllocator, 0);
@ -81,6 +83,18 @@ namespace GraphCanvas
{ {
itemKey.append(AZStd::string::format(".%d", i)); itemKey.append(AZStd::string::format(".%d", i));
} }
rapidjson::Value::ConstMemberIterator innerContextItr = element.FindMember(Schema::Field::context);
if (innerContextItr != element.MemberEnd())
{
itemKey.append(AZStd::string::format(".%s", innerContextItr->value.GetString()));
}
rapidjson::Value::ConstMemberIterator innerVariantItr = element.FindMember(Schema::Field::variant);
if (innerVariantItr != element.MemberEnd())
{
itemKey.append(AZStd::string::format(".%s", innerVariantItr->value.GetString()));
}
} }
AddEntryToDatabase(itemKey, "", element, translationFormat); AddEntryToDatabase(itemKey, "", element, translationFormat);
@ -178,3 +192,6 @@ namespace GraphCanvas
return context.Report(JSR::Tasks::WriteValue, JSR::Outcomes::Unsupported, "Storing a Translation asset is not currently supported"); return context.Report(JSR::Tasks::WriteValue, JSR::Outcomes::Unsupported, "Storing a Translation asset is not currently supported");
} }
} }
#pragma optimize("", on)

@ -5,13 +5,11 @@
"context": "BehaviorClass", "context": "BehaviorClass",
"variant": "", "variant": "",
"details": { "details": {
"name": "Material Data", "name": "Material Data"
"category": "Rendering"
}, },
"methods": [ "methods": [
{ {
"base": "GetBaseColor", "base": "GetBaseColor",
"context": "MaterialData",
"entry": { "entry": {
"name": "In", "name": "In",
"tooltip": "When signaled, this will invoke Get Base Color" "tooltip": "When signaled, this will invoke Get Base Color"
@ -525,13 +523,13 @@
"base": "GetBaseColor", "base": "GetBaseColor",
"context": "Getter", "context": "Getter",
"details": { "details": {
"name": "Get Base Color" "name": "Base Color"
}, },
"results": [ "results": [
{ {
"typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}", "typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}",
"details": { "details": {
"name": "Base Color" "name": "Value"
} }
} }
] ]

@ -1,71 +0,0 @@
{
"entries": [
{
"base": "{FDD3D684-2C9A-0C05-D2A3-FD67685D8F26}",
"context": "ScriptCanvas::Node",
"variant": "",
"details": {
"name": "BranchInputTypeExample",
"category": "Tests",
"tooltip": "Example of branch passing as input by value, pointer and reference.",
"subtitle": "Tests"
},
"slots": [
{
"base": "Input_Get Internal Vector",
"details": {
"name": "Get Internal Vector"
}
},
{
"base": "Output_On Get Internal Vector",
"details": {
"name": "On Get Internal Vector"
}
},
{
"base": "DataOutput_Result",
"details": {
"name": "Result"
}
},
{
"base": "Input_Branches On Input Type",
"details": {
"name": "Branches On Input Type"
}
},
{
"base": "DataInput_Input Type",
"details": {
"name": "Input Type"
}
},
{
"base": "Output_By Value",
"details": {
"name": "By Value"
}
},
{
"base": "DataOutput_Value Input",
"details": {
"name": "Value Input"
}
},
{
"base": "Output_By Pointer",
"details": {
"name": "By Pointer"
}
},
{
"base": "DataOutput_Pointer Input",
"details": {
"name": "Pointer Input"
}
}
]
}
]
}

@ -338,7 +338,7 @@ namespace ScriptCanvasEditor::Nodes
AZStd::string methodContext; AZStd::string methodContext;
// Get the method's text data // Get the method's text data
GraphCanvas::TranslationRequests::Details methodDetails; GraphCanvas::TranslationRequests::Details methodDetails;
methodDetails.m_name = details.m_name; // fallback methodDetails.m_name = methodName; // fallback
key << "methods"; key << "methods";
AZStd::string updatedMethodName = methodName; AZStd::string updatedMethodName = methodName;
if (isAccessor) if (isAccessor)
@ -355,13 +355,13 @@ namespace ScriptCanvasEditor::Nodes
} }
updatedMethodName.append(methodName); updatedMethodName.append(methodName);
} }
key << methodContext << updatedMethodName; key << updatedMethodName << methodContext;
GraphCanvas::TranslationRequestBus::BroadcastResult(methodDetails, &GraphCanvas::TranslationRequests::GetDetails, key + ".details", methodDetails); GraphCanvas::TranslationRequestBus::BroadcastResult(methodDetails, &GraphCanvas::TranslationRequests::GetDetails, key + ".details", methodDetails);
if (methodDetails.m_subtitle.empty()) if (methodDetails.m_subtitle.empty())
{ {
methodDetails.m_subtitle = details.m_category; methodDetails.m_subtitle = details.m_category.empty() ? details.m_name : details.m_category;
} }
// Add to the tooltip the C++ class for reference // Add to the tooltip the C++ class for reference
@ -404,6 +404,19 @@ namespace ScriptCanvasEditor::Nodes
{ {
key.clear(); key.clear();
key << context << className << "methods" << updatedMethodName; key << context << className << "methods" << updatedMethodName;
if (isAccessor)
{
if (methodNode->GetMethodType() == ScriptCanvas::MethodType::Getter || methodNode->GetMethodType() == ScriptCanvas::MethodType::Free)
{
key << "Getter";
}
else
{
key << "Setter";
}
}
if (slot.IsInput()) if (slot.IsInput())
{ {
key << "params"; key << "params";

@ -86,13 +86,16 @@ namespace ScriptCanvasEditor
AZStd::string updatedMethodName; AZStd::string updatedMethodName;
AZStd::string methodContext;
if (propertyStatus != ScriptCanvas::PropertyStatus::None) if (propertyStatus != ScriptCanvas::PropertyStatus::None)
{ {
updatedMethodName = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Get" : "Set"; updatedMethodName = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Get" : "Set";
methodContext = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Getter" : "Setter";
} }
updatedMethodName.append(methodName); updatedMethodName.append(methodName);
key << "BehaviorClass" << className << "methods" << updatedMethodName << "details"; key << "BehaviorClass" << className << "methods" << updatedMethodName << methodContext << "details";
GraphCanvas::TranslationRequests::Details details; GraphCanvas::TranslationRequests::Details details;
details.m_name = methodName; details.m_name = methodName;

@ -1030,7 +1030,7 @@ namespace ScriptCanvasEditor
context = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Getter" : "Setter"; context = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Getter" : "Setter";
} }
updatedMethodName += methodName; updatedMethodName += methodName;
key << "BehaviorClass" << context << methodClass << "methods" << updatedMethodName << "details"; key << "BehaviorClass" << methodClass << "methods" << updatedMethodName << context << "details";
GraphCanvas::TranslationRequests::Details details; GraphCanvas::TranslationRequests::Details details;
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details); GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);

@ -258,7 +258,6 @@ namespace ScriptCanvasEditorTools
AZStd::string cleanName = GraphCanvas::TranslationKey::Sanitize(methodPair.first); AZStd::string cleanName = GraphCanvas::TranslationKey::Sanitize(methodPair.first);
methodEntry.m_key = cleanName; methodEntry.m_key = cleanName;
methodEntry.m_context = className;
methodEntry.m_details.m_category = ""; methodEntry.m_details.m_category = "";
methodEntry.m_details.m_tooltip = ""; methodEntry.m_details.m_tooltip = "";

Loading…
Cancel
Save