فهرست منبع

Set the RevertOverride message handler correctly (#15679)

Signed-off-by: Junhao Wang <[email protected]>
Junhao Wang 2 سال پیش
والد
کامیت
db7ab8bf07

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

@@ -82,6 +82,7 @@ namespace AzToolsFramework::Prefab
         }
         }
 
 
         adapterBuilder->Attribute(PrefabOverrideLabel::RelativePath, relativePathFromEntity.ToString());
         adapterBuilder->Attribute(PrefabOverrideLabel::RelativePath, relativePathFromEntity.ToString());
+        adapterBuilder->AddMessageHandler(this, PrefabOverrideLabel::RevertOverride);
 
 
         // Do not show override visualization on container entities or for empty serialized paths.
         // Do not show override visualization on container entities or for empty serialized paths.
         if (m_prefabPublicInterface->IsInstanceContainerEntity(m_entityId) || relativePathFromEntity.IsEmpty())
         if (m_prefabPublicInterface->IsInstanceContainerEntity(m_entityId) || relativePathFromEntity.IsEmpty())
@@ -92,11 +93,6 @@ namespace AzToolsFramework::Prefab
         {
         {
             bool isOverridden = m_prefabOverridePublicInterface->AreOverridesPresent(m_entityId, relativePathFromEntity.ToString());
             bool isOverridden = m_prefabOverridePublicInterface->AreOverridesPresent(m_entityId, relativePathFromEntity.ToString());
             adapterBuilder->Attribute(PrefabOverrideLabel::IsOverridden, isOverridden);
             adapterBuilder->Attribute(PrefabOverrideLabel::IsOverridden, isOverridden);
-
-            if (isOverridden)
-            {
-                adapterBuilder->AddMessageHandler(this, PrefabOverrideLabel::RevertOverride);
-            }
         }
         }
 
 
         adapterBuilder->EndPropertyEditor();
         adapterBuilder->EndPropertyEditor();

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

@@ -45,9 +45,10 @@ namespace UnitTest
             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::Text.GetName()].GetString(), "Translate");
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RelativePath.GetName()].GetString().empty());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RelativePath.GetName()].GetString().empty());
-            EXPECT_TRUE(labelPropertyEditor[PrefabOverrideLabel::IsOverridden.GetName()].GetBool());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());
 
 
+            EXPECT_TRUE(labelPropertyEditor[PrefabOverrideLabel::IsOverridden.GetName()].GetBool());
+
             AZ::Dom::Value valuePropertyEditor = translateRow[1];
             AZ::Dom::Value valuePropertyEditor = translateRow[1];
             EXPECT_EQ(valuePropertyEditor[PropertyEditor::Value.GetName()][0].GetDouble(), 10.0);
             EXPECT_EQ(valuePropertyEditor[PropertyEditor::Value.GetName()][0].GetDouble(), 10.0);
         };
         };
@@ -82,8 +83,9 @@ namespace UnitTest
             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::Text.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::IsOverridden.GetName()].GetBool());
             EXPECT_FALSE(labelPropertyEditor[PrefabOverrideLabel::IsOverridden.GetName()].GetBool());
-            EXPECT_TRUE(labelPropertyEditor[PrefabOverrideLabel::RevertOverride.GetName()].IsNull());
 
 
             AZ::Dom::Value valuePropertyEditor = translateRow[1];
             AZ::Dom::Value valuePropertyEditor = translateRow[1];
             EXPECT_EQ(valuePropertyEditor[PropertyEditor::Value.GetName()][0].GetDouble(), 10.0);
             EXPECT_EQ(valuePropertyEditor[PropertyEditor::Value.GetName()][0].GetDouble(), 10.0);