Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: remove ifdefed logic releated to CEntityObject #17911

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 16 additions & 74 deletions Gems/LyShine/Code/Editor/Animation/UiAnimViewNodes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,6 @@ CUiAnimViewNodesCtrl::CUiAnimViewNodesCtrl(QWidget* hParentWnd, CUiAnimViewDialo
connect(ui->treeWidget, &QTreeWidget::itemExpanded, this, &CUiAnimViewNodesCtrl::OnItemExpanded);
connect(ui->treeWidget, &QTreeWidget::itemCollapsed, this, &CUiAnimViewNodesCtrl::OnItemExpanded);
connect(ui->treeWidget, &QTreeWidget::itemSelectionChanged, this, &CUiAnimViewNodesCtrl::OnSelectionChanged);
connect(ui->treeWidget, &QTreeWidget::itemDoubleClicked, this, &CUiAnimViewNodesCtrl::OnItemDblClick);

connect(ui->searchField, &QLineEdit::textChanged, this, &CUiAnimViewNodesCtrl::OnFilterChange);

Expand Down Expand Up @@ -892,11 +891,6 @@ void CUiAnimViewNodesCtrl::OnNMRclick(QPoint point)
EndUndoTransaction();
}
}
else if (cmd == eMI_SelectInViewport)
{
UiAnimUndo undo("Select Animation Nodes in Viewport");
pSequence->SelectSelectedNodesInViewport();
}
else if (cmd >= eMI_SelectSubmaterialBase && cmd < eMI_SelectSubmaterialBase + 100)
{
if (pAnimNode)
Expand Down Expand Up @@ -951,31 +945,6 @@ void CUiAnimViewNodesCtrl::OnNMRclick(QPoint point)
}
}

//////////////////////////////////////////////////////////////////////////
void CUiAnimViewNodesCtrl::OnItemDblClick(QTreeWidgetItem* item, int)
{
CRecord* pRecord = (CRecord*)item;
if (pRecord && pRecord->GetNode())
{
CUiAnimViewNode* pNode = pRecord->GetNode();

if (pNode->GetNodeType() == eUiAVNT_AnimNode)
{
#if UI_ANIMATION_REMOVED // uses Cry Entity
CUiAnimViewAnimNode* pAnimNode = static_cast<CUiAnimViewAnimNode*>(pNode);
CEntityObject* pEntity = pAnimNode->GetNodeEntity();

if (pEntity)
{
UiAnimUndo undo("Select Object");
GetIEditor()->ClearSelection();
GetIEditor()->SelectObject(pEntity);
}
#endif
}
}
}

//////////////////////////////////////////////////////////////////////////
void CUiAnimViewNodesCtrl::EditEvents()
{
Expand Down Expand Up @@ -1010,13 +979,6 @@ void CUiAnimViewNodesCtrl::AddGroupNodeAddItems(UiAnimContextMenu& contextMenu,
contextMenu.main.addAction("Add Selected UI Element(s)")->setData(eMI_AddSelectedUiElements);
contextMenu.main.addAction("Add Event Node")->setData(eMI_AddEvent);
}

#if UI_ANIMATION_REMOVED
contextMenu.main.addAction("Add Comment Node")->setData(eMI_AddCommentNode);
contextMenu.main.addAction("Add Console Variable")->setData(eMI_AddConsoleVariable);
contextMenu.main.addAction("Add Script Variable")->setData(eMI_AddScriptVariable);
contextMenu.main.addAction("Add Material")->setData(eMI_AddMaterial);
#endif
}

//////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -1054,30 +1016,11 @@ int CUiAnimViewNodesCtrl::ShowPopupMenuSingleSelection(UiAnimContextMenu& contex
pAnimNode = pTrack->GetAnimNode();
}

#if UI_ANIMATION_REMOVED
// Entity
if (bOnNode && pAnimNode->GetEntity() != nullptr && !bIsLightAnimationSet)
if (bOnNode || bOnSequence || bOnTrackNotSub)
{
AddMenuSeperatorConditional(contextMenu.main, bAppended);

contextMenu.main.addAction("Select In Viewport")->setData(eMI_SelectInViewport);

if (pAnimNode->GetType() == eUiAnimNodeType_Camera)
{
contextMenu.main.addAction("Set As View Camera")->setData(eMI_SetAsViewCamera);
}

contextMenu.main.addAction("Delete")->setData(bOnTrackNotSub ? eMI_RemoveTrack : eMI_RemoveSelected);
bAppended = true;
}
#endif

{
if (bOnNode || bOnSequence || bOnTrackNotSub)
{
contextMenu.main.addAction("Delete")->setData(bOnTrackNotSub ? eMI_RemoveTrack : eMI_RemoveSelected);
bAppended = true;
}
}

if (bOnTrack)
{
Expand Down Expand Up @@ -1124,21 +1067,20 @@ int CUiAnimViewNodesCtrl::ShowPopupMenuSingleSelection(UiAnimContextMenu& contex
bAppended = true;
}

#if UI_ANIMATION_REMOVED
// We have removed support for saving out the custom colors per track
// it may be added back at some point
// Track color
if (bOnTrack)
{
AddMenuSeperatorConditional(contextMenu.main, bAppended);
contextMenu.main.addAction("Customize Track Color...")->setData(eMI_CustomizeTrackColor);
if (pTrack->HasCustomColor())
{
contextMenu.main.addAction("Clear Custom Track Color")->setData(eMI_ClearCustomTrackColor);
}
bAppended = true;
}
#endif
// TODO: look into support track colors
// We have removed support for saving out the custom colors per track
// it may be added back at some point
// Track color
// if (bOnTrack)
// {
// AddMenuSeperatorConditional(contextMenu.main, bAppended);
// contextMenu.main.addAction("Customize Track Color...")->setData(eMI_CustomizeTrackColor);
// if (pTrack->HasCustomColor())
// {
// contextMenu.main.addAction("Clear Custom Track Color")->setData(eMI_ClearCustomTrackColor);
// }
// bAppended = true;
// }

// Track hide/unhide flags
if (bOnNode && !pNode->IsGroupNode())
Expand Down
1 change: 0 additions & 1 deletion Gems/LyShine/Code/Editor/Animation/UiAnimViewNodes.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ private slots:
void OnNMRclick(QPoint pos);
void OnItemExpanded(QTreeWidgetItem*);
void OnSelectionChanged();
void OnItemDblClick(QTreeWidgetItem* item, int);
void OnFilterChange(const QString& text);

private:
Expand Down
161 changes: 2 additions & 159 deletions Gems/LyShine/Code/Editor/Animation/UiAnimViewSequence.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,44 +275,6 @@ void CUiAnimViewSequence::OnKeysChanged()
//////////////////////////////////////////////////////////////////////////
void CUiAnimViewSequence::OnNodeChanged(CUiAnimViewNode* pNode, IUiAnimViewSequenceListener::ENodeChangeType type)
{
#if UI_ANIMATION_REMOVED // UI_ANIMATION_REVISIT do we need any of this?
if (pNode && pNode->GetNodeType() == eUiAVNT_AnimNode)
{
CUiAnimViewAnimNode* pAnimNode = static_cast<CUiAnimViewAnimNode*>(pNode);
CEntityObject* pNodeEntity = pAnimNode->GetNodeEntity();

if (pAnimNode->IsActive() && pNodeEntity)
{
switch (type)
{
case IUiAnimViewSequenceListener::eNodeChangeType_Added:
pNodeEntity->SetTransformDelegate(pAnimNode);
pNodeEntity->RegisterListener(pAnimNode);
ForceAnimation();
break;
case IUiAnimViewSequenceListener::eNodeChangeType_Removed:
pNodeEntity->SetTransformDelegate(nullptr);
pNodeEntity->UnregisterListener(pAnimNode);
ForceAnimation();
break;
}
}

switch (type)
{
case IUiAnimViewSequenceListener::eNodeChangeType_Enabled:
// Fall through
case IUiAnimViewSequenceListener::eNodeChangeType_Hidden:
// Fall through
case IUiAnimViewSequenceListener::eNodeChangeType_SetAsActiveDirector:
// Fall through
case IUiAnimViewSequenceListener::eNodeChangeType_NodeOwnerChanged:
ForceAnimation();
break;
}
}
#endif

if (m_bNoNotifications)
{
return;
Expand All @@ -328,12 +290,6 @@ void CUiAnimViewSequence::OnNodeChanged(CUiAnimViewNode* pNode, IUiAnimViewSeque
//////////////////////////////////////////////////////////////////////////
void CUiAnimViewSequence::OnNodeRenamed(CUiAnimViewNode* pNode, const char* pOldName)
{
bool bLightAnimationSetActive = GetFlags() & IUiAnimSequence::eSeqFlags_LightAnimationSet;
if (bLightAnimationSetActive)
{
UpdateLightAnimationRefs(pOldName, pNode->GetName().c_str());
}

if (m_bNoNotifications)
{
return;
Expand Down Expand Up @@ -422,45 +378,9 @@ void CUiAnimViewSequence::DeleteSelectedNodes()
}

CUiAnimViewAnimNodeBundle selectedNodes = GetSelectedAnimNodes();
const unsigned int numSelectedNodes = selectedNodes.GetCount();

#if UI_ANIMATION_REMOVED // lights
// Check if any reference to the light animation to be deleted exists, and abort the removal, if any.
const bool bLightAnimationSetActive = GetFlags() & IUiAnimSequence::eSeqFlags_LightAnimationSet;
if (bLightAnimationSetActive)
{
QStringList lightNodes;

// Construct set of selected light nodes
for (unsigned int i = 0; i < numSelectedNodes; ++i)
{
CUiAnimViewAnimNode* pCurrentNode = selectedNodes.GetNode(i);
if (pCurrentNode->GetType() == eUiAnimNodeType_Light)
{
stl::push_back_unique(lightNodes, pCurrentNode->GetName());
}
}

// Check all entities if any is referencing any selected light node
std::vector<CBaseObject*> entityObjects;
GetIEditor()->GetObjectManager()->FindObjectsOfType(&CEntityObject::staticMetaObject, entityObjects);

for (size_t i = 0; i < entityObjects.size(); ++i)
{
QString lightAnimationName = static_cast<CEntityObject*>(entityObjects[i])->GetLightAnimation();
if (stl::find(lightNodes, lightAnimationName))
{
QMessageBox::critical(QApplication::activeWindow(), QString(), QObject::tr("The node '%1' cannot be removed since there is a light entity still using it.").arg(lightAnimationName));
return;
}
}
}
#endif

CUiAnimViewTrackBundle selectedTracks = GetSelectedTracks();
const unsigned int numSelectedTracks = selectedTracks.GetCount();

for (unsigned int i = 0; i < numSelectedTracks; ++i)
for (unsigned int i = 0; i < selectedTracks.GetCount(); ++i)
{
CUiAnimViewTrack* pTrack = selectedTracks.GetTrack(i);

Expand All @@ -471,91 +391,14 @@ void CUiAnimViewSequence::DeleteSelectedNodes()
}
}

for (unsigned int i = 0; i < numSelectedNodes; ++i)
for (unsigned int i = 0; i < selectedNodes.GetCount(); ++i)
{
CUiAnimViewAnimNode* pNode = selectedNodes.GetNode(i);
CUiAnimViewAnimNode* pParentNode = static_cast<CUiAnimViewAnimNode*>(pNode->GetParentNode());
pParentNode->RemoveSubNode(pNode);
}
}

//////////////////////////////////////////////////////////////////////////
void CUiAnimViewSequence::SelectSelectedNodesInViewport()
{
assert(UiAnimUndo::IsRecording());

CUiAnimViewAnimNodeBundle selectedNodes = GetSelectedAnimNodes();

#if UI_ANIMATION_REMOVED // lights
const unsigned int numSelectedNodes = selectedNodes.GetCount();

// Also select objects that refer to light animation
const bool bLightAnimationSetActive = GetFlags() & IUiAnimSequence::eSeqFlags_LightAnimationSet;
if (bLightAnimationSetActive)
{
QStringList lightNodes;

// Construct set of selected light nodes
for (unsigned int i = 0; i < numSelectedNodes; ++i)
{
CUiAnimViewAnimNode* pCurrentNode = selectedNodes.GetNode(i);
if (pCurrentNode->GetType() == eUiAnimNodeType_Light)
{
stl::push_back_unique(lightNodes, pCurrentNode->GetName());
}
}

// Check all entities if any is referencing any selected light node
std::vector<CBaseObject*> entityObjects;
GetIEditor()->GetObjectManager()->FindObjectsOfType(&CEntityObject::staticMetaObject, entityObjects);

for (size_t i = 0; i < entityObjects.size(); ++i)
{
QString lightAnimationName = static_cast<CEntityObject*>(entityObjects[i])->GetLightAnimation();
if (stl::find(lightNodes, lightAnimationName))
{
stl::push_back_unique(entitiesToBeSelected, entityObjects[i]);
}
}
}
else
{
for (unsigned int i = 0; i < numSelectedNodes; ++i)
{
CUiAnimViewAnimNode* pNode = selectedNodes.GetNode(i);
CEntityObject* pEntity = pNode->GetNodeEntity();
if (pEntity)
{
stl::push_back_unique(entitiesToBeSelected, pEntity);
}
}
}
#endif
}

//////////////////////////////////////////////////////////////////////////
void CUiAnimViewSequence::UpdateLightAnimationRefs([[maybe_unused]] const char* pOldName, [[maybe_unused]] const char* pNewName)
{
#if UI_ANIMATION_REMOVED // lights
std::vector<CBaseObject*> entityObjects;
GetIEditor()->GetObjectManager()->FindObjectsOfType(&CEntityObject::staticMetaObject, entityObjects);
std::for_each(std::begin(entityObjects), std::end(entityObjects),
[&pOldName, &pNewName](CBaseObject* pBaseObject)
{
CEntityObject* pEntityObject = static_cast<CEntityObject*>(pBaseObject);
bool bLight = pEntityObject && pEntityObject->GetEntityClass().Compare("Light") == 0;
if (bLight)
{
string lightAnimation = pEntityObject->GetEntityPropertyString("lightanimation_LightAnimation");
if (lightAnimation == pOldName)
{
pEntityObject->SetEntityPropertyString("lightanimation_LightAnimation", pNewName);
}
}
});
#endif
}

//////////////////////////////////////////////////////////////////////////
bool CUiAnimViewSequence::SetName(const char* pName)
{
Expand Down
5 changes: 0 additions & 5 deletions Gems/LyShine/Code/Editor/Animation/UiAnimViewSequence.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,6 @@ class CUiAnimViewSequence
// Deletes all selected nodes (re-parents childs if group node gets deleted)
void DeleteSelectedNodes();

// Select selected nodes in viewport
void SelectSelectedNodesInViewport();

// Deletes all selected keys
void DeleteSelectedKeys();

Expand Down Expand Up @@ -233,8 +230,6 @@ class CUiAnimViewSequence

void CopyKeysToClipboard(XmlNodeRef& xmlNode, const bool bOnlySelectedKeys, const bool bOnlyFromSelectedTracks) override;

void UpdateLightAnimationRefs(const char* pOldName, const char* pNewName);

std::deque<CUiAnimViewTrack*> GetMatchingTracks(CUiAnimViewAnimNode* pAnimNode, XmlNodeRef trackNode);
void GetMatchedPasteLocationsRec(std::vector<TMatchedTrackLocation>& locations, CUiAnimViewNode* pCurrentNode, XmlNodeRef clipboardNode);

Expand Down
Loading