Browse Source

cherry-pick expansion fix (#17346)

* fix string constructible types failing conversion when not implicitly (#17292)

strings

Signed-off-by: Alex Montgomery <[email protected]>

* make sure cached attributes are removed before they are re-added (#17289)

Signed-off-by: Alex Montgomery <[email protected]>

* Fix expansion state saving/restoring for PrefabOverrideLabelHandler (#17335)

* quick fix for truncation warning

* DCO Remediation Commit for Alex Montgomery <[email protected]>

I, Alex Montgomery <[email protected]>, hereby add my Signed-off-by to this commit: e58664e2ae59183444621339cd7d85f770c3ed5b

Signed-off-by: Alex Montgomery <[email protected]>

* fix expansion state saving for PrefabOverrideLabelHandler

Signed-off-by: Alex Montgomery <[email protected]>

* fix override label tests

Signed-off-by: Alex Montgomery <[email protected]>

---------

Signed-off-by: Alex Montgomery <[email protected]>

---------

Signed-off-by: Alex Montgomery <[email protected]>
Alex Montgomery 1 year ago
parent
commit
7c20e9ab1a

+ 3 - 2
Code/Framework/AzFramework/AzFramework/DocumentPropertyEditor/ExpanderSettings.cpp

@@ -187,9 +187,10 @@ namespace AZ::DocumentPropertyEditor
             for (auto arrayIter = rowValue.ArrayBegin(), endIter = rowValue.ArrayEnd(); arrayIter != endIter; ++arrayIter)
             for (auto arrayIter = rowValue.ArrayBegin(), endIter = rowValue.ArrayEnd(); arrayIter != endIter; ++arrayIter)
             {
             {
                 auto& currChild = *arrayIter;
                 auto& currChild = *arrayIter;
-                if (currChild.GetNodeName() == AZ::Dpe::GetNodeName<AZ::Dpe::Nodes::Label>())
+                auto valueMember = currChild.FindMember("Value");
+                if (valueMember != currChild.MemberEnd() && valueMember->second.IsString())
                 {
                 {
-                    subString = AZ::Dpe::Nodes::Label::Value.ExtractFromDomNode(currChild).value_or("");
+                    subString = valueMember->second.GetString();
                     break;
                     break;
                 }
                 }
             }
             }

+ 1 - 1
Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/DocumentPropertyEditor/PrefabComponentAdapter.cpp

@@ -73,7 +73,7 @@ namespace AzToolsFramework::Prefab
         AZ_Assert(adapterBuilder != nullptr, "PrefabComponentAdapter: CreateLabel called with null adapterBuilder!");
         AZ_Assert(adapterBuilder != nullptr, "PrefabComponentAdapter: CreateLabel called with null adapterBuilder!");
 
 
         adapterBuilder->BeginPropertyEditor<PrefabOverrideLabel>();
         adapterBuilder->BeginPropertyEditor<PrefabOverrideLabel>();
-        adapterBuilder->Attribute(PrefabOverrideLabel::Text, labelText);
+        adapterBuilder->Attribute(PrefabOverrideLabel::Value, labelText);
 
 
         AZ::Dom::Path relativePathFromEntity;
         AZ::Dom::Path relativePathFromEntity;
         if (!m_componentAlias.empty() && !serializedPath.empty())
         if (!m_componentAlias.empty() && !serializedPath.empty())

+ 1 - 1
Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/DocumentPropertyEditor/PrefabOverrideLabelHandler.cpp

@@ -39,7 +39,7 @@ namespace AzToolsFramework::Prefab
         m_overridden = PrefabOverrideLabel::IsOverridden.ExtractFromDomNode(domValue).value_or(false);
         m_overridden = PrefabOverrideLabel::IsOverridden.ExtractFromDomNode(domValue).value_or(false);
 
 
         // Set up label
         // Set up label
-        AZStd::string_view labelText = PrefabOverrideLabel::Text.ExtractFromDomNode(domValue).value_or("");
+        AZStd::string_view labelText = PrefabOverrideLabel::Value.ExtractFromDomNode(domValue).value_or("");
         m_textLabel->setText(QString::fromUtf8(labelText.data(), aznumeric_cast<int>(labelText.size())));
         m_textLabel->setText(QString::fromUtf8(labelText.data(), aznumeric_cast<int>(labelText.size())));
 
 
         m_textLabel->setProperty(OverriddenPropertyName, QVariant(m_overridden));
         m_textLabel->setProperty(OverriddenPropertyName, QVariant(m_overridden));

+ 1 - 1
Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/DocumentPropertyEditor/PrefabPropertyEditorNodes.h

@@ -15,7 +15,7 @@ namespace AzToolsFramework::Prefab::PrefabPropertyEditorNodes
     struct PrefabOverrideLabel : AZ::DocumentPropertyEditor::NodeDefinition
     struct PrefabOverrideLabel : AZ::DocumentPropertyEditor::NodeDefinition
     {
     {
         static constexpr AZStd::string_view Name = "PrefabOverrideLabel";
         static constexpr AZStd::string_view Name = "PrefabOverrideLabel";
-        static constexpr auto Text = AZ::DocumentPropertyEditor::AttributeDefinition<AZStd::string_view>("Text");
+        static constexpr auto Value = AZ::DocumentPropertyEditor::AttributeDefinition<AZStd::string_view>("Value");
         static constexpr auto IsOverridden = AZ::DocumentPropertyEditor::AttributeDefinition<bool>("IsOverridden");
         static constexpr auto IsOverridden = AZ::DocumentPropertyEditor::AttributeDefinition<bool>("IsOverridden");
         static constexpr auto RelativePath = AZ::DocumentPropertyEditor::AttributeDefinition<AZStd::string_view>("RelativePath");
         static constexpr auto RelativePath = AZ::DocumentPropertyEditor::AttributeDefinition<AZStd::string_view>("RelativePath");
         static constexpr auto RevertOverride =
         static constexpr auto RevertOverride =

+ 2 - 2
Code/Framework/AzToolsFramework/Tests/Prefab/Overrides/PrefabInspectorOverrideTests.cpp

@@ -43,7 +43,7 @@ namespace UnitTest
 
 
             AZ::Dom::Value labelPropertyEditor = translateRow[0];
             AZ::Dom::Value labelPropertyEditor = translateRow[0];
             EXPECT_EQ(labelPropertyEditor[PropertyEditor::Type.GetName()].GetString(), PrefabOverrideLabel::Name);
             EXPECT_EQ(labelPropertyEditor[PropertyEditor::Type.GetName()].GetString(), PrefabOverrideLabel::Name);
-            EXPECT_EQ(labelPropertyEditor[PrefabOverrideLabel::Text.GetName()].GetString(), "Translate");
+            EXPECT_EQ(labelPropertyEditor[PrefabOverrideLabel::Value.GetName()].GetString(), "Translate");
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RelativePath.GetName()].GetString().empty());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RelativePath.GetName()].GetString().empty());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());
 
 
@@ -81,7 +81,7 @@ namespace UnitTest
 
 
             AZ::Dom::Value labelPropertyEditor = translateRow[0];
             AZ::Dom::Value labelPropertyEditor = translateRow[0];
             EXPECT_EQ(labelPropertyEditor[PropertyEditor::Type.GetName()].GetString(), PrefabOverrideLabel::Name);
             EXPECT_EQ(labelPropertyEditor[PropertyEditor::Type.GetName()].GetString(), PrefabOverrideLabel::Name);
-            EXPECT_EQ(labelPropertyEditor[PrefabOverrideLabel::Text.GetName()].GetString(), "Translate");
+            EXPECT_EQ(labelPropertyEditor[PrefabOverrideLabel::Value.GetName()].GetString(), "Translate");
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RelativePath.GetName()].GetString().empty());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RelativePath.GetName()].GetString().empty());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());