From be6cee806ddcc1b629cfcf3fad51c5429091a504 Mon Sep 17 00:00:00 2001 From: srikappa Date: Fri, 28 May 2021 02:14:28 -0700 Subject: [PATCH] Show detach prefab only when a single instance is selected --- .../Prefab/PrefabPublicHandler.cpp | 26 +++++++++---------- .../UI/Prefab/PrefabIntegrationManager.cpp | 21 +++++++-------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabPublicHandler.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabPublicHandler.cpp index f6ded4ae45..653b7d4878 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabPublicHandler.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabPublicHandler.cpp @@ -1155,19 +1155,6 @@ namespace AzToolsFramework return AZ::Success(); } - void PrefabPublicHandler::ReplaceOldAliases(QString& stringToReplace, AZStd::string_view oldAlias, AZStd::string_view newAlias) - { - QString oldAliasQuotes = QString("\"%1\"").arg(oldAlias.data()); - QString newAliasQuotes = QString("\"%1\"").arg(newAlias.data()); - - stringToReplace.replace(oldAliasQuotes, newAliasQuotes); - - QString oldAliasPathRef = QString("/%1").arg(oldAlias.data()); - QString newAliasPathRef = QString("/%1").arg(newAlias.data()); - - stringToReplace.replace(oldAliasPathRef, newAliasPathRef); - } - void PrefabPublicHandler::GenerateContainerEntityTransform(const EntityList& topLevelEntities, AZ::Vector3& translation, AZ::Quaternion& rotation) { @@ -1418,5 +1405,18 @@ namespace AzToolsFramework return true; } + + void PrefabPublicHandler::ReplaceOldAliases(QString& stringToReplace, AZStd::string_view oldAlias, AZStd::string_view newAlias) + { + QString oldAliasQuotes = QString("\"%1\"").arg(oldAlias.data()); + QString newAliasQuotes = QString("\"%1\"").arg(newAlias.data()); + + stringToReplace.replace(oldAliasQuotes, newAliasQuotes); + + QString oldAliasPathRef = QString("/%1").arg(oldAlias.data()); + QString newAliasPathRef = QString("/%1").arg(newAlias.data()); + + stringToReplace.replace(oldAliasPathRef, newAliasPathRef); + } } // namespace Prefab } // namespace AzToolsFramework diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/Prefab/PrefabIntegrationManager.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/Prefab/PrefabIntegrationManager.cpp index 090c7bdc54..45499a4071 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/Prefab/PrefabIntegrationManager.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/Prefab/PrefabIntegrationManager.cpp @@ -238,24 +238,21 @@ namespace AzToolsFramework deleteAction->setDisabled(true); } - QAction* detachPrefabAction = menu->addAction(QObject::tr("Detach Prefab...")); - if (selectedEntities.size() != 1) - { - detachPrefabAction->setDisabled(true); - } - else + // Detach Prefab + if (selectedEntities.size() == 1) { AZ::EntityId selectedEntity = selectedEntities[0]; if (s_prefabPublicInterface->IsInstanceContainerEntity(selectedEntity) && !s_prefabPublicInterface->IsLevelInstanceContainerEntity(selectedEntity)) { - QObject::connect(detachPrefabAction, &QAction::triggered, detachPrefabAction, - [this, selectedEntity] { ContextMenu_DetachPrefab(selectedEntity); }); - } - else - { - detachPrefabAction->setDisabled(true); + QAction* detachPrefabAction = menu->addAction(QObject::tr("Detach Prefab...")); + QObject::connect( + detachPrefabAction, &QAction::triggered, detachPrefabAction, + [this, selectedEntity] + { + ContextMenu_DetachPrefab(selectedEntity); + }); } } }