Merge pull request #316 from aws-lumberyard-dev/cgalvan/GetSelectedEntitiesCount
[LYN-3272] Added API for retrieving the number of selected entities. Updated InfoBar to use this new API.
This commit is contained in:
@@ -348,6 +348,11 @@ namespace AzToolsFramework
|
||||
*/
|
||||
virtual bool AreAnyEntitiesSelected() = 0;
|
||||
|
||||
/*!
|
||||
* Returns the number of selected entities.
|
||||
*/
|
||||
virtual int GetSelectedEntitiesCount() = 0;
|
||||
|
||||
/*!
|
||||
* Retrieves the set of selected entities.
|
||||
* \return a list of entity Ids.
|
||||
|
||||
@@ -395,6 +395,7 @@ namespace AzToolsFramework
|
||||
->Event("MarkEntityDeselected", &ToolsApplicationRequests::MarkEntityDeselected)
|
||||
->Event("IsSelected", &ToolsApplicationRequests::IsSelected)
|
||||
->Event("AreAnyEntitiesSelected", &ToolsApplicationRequests::AreAnyEntitiesSelected)
|
||||
->Event("GetSelectedEntitiesCount", &ToolsApplicationRequests::GetSelectedEntitiesCount)
|
||||
;
|
||||
|
||||
behaviorContext->EBus<ToolsApplicationNotificationBus>("ToolsApplicationNotificationBus")
|
||||
|
||||
@@ -101,6 +101,7 @@ namespace AzToolsFramework
|
||||
SourceControlFileInfo GetSceneSourceControlInfo() override;
|
||||
|
||||
bool AreAnyEntitiesSelected() override { return !m_selectedEntities.empty(); }
|
||||
int GetSelectedEntitiesCount() override { return m_selectedEntities.size(); }
|
||||
const EntityIdList& GetSelectedEntities() override { return m_selectedEntities; }
|
||||
const EntityIdList& GetHighlightedEntities() override { return m_highlightedEntities; }
|
||||
void SetSelectedEntities(const EntityIdList& selectedEntities) override;
|
||||
|
||||
@@ -81,12 +81,17 @@ namespace UnitTest
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
anyEntitySelected, &ToolsApplicationRequests::AreAnyEntitiesSelected);
|
||||
|
||||
int selectedEntitiesCount = 0;
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntitiesCount, &ToolsApplicationRequests::GetSelectedEntitiesCount);
|
||||
|
||||
EntityIdList selectedEntityIds;
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntityIds, &ToolsApplicationRequests::GetSelectedEntities);
|
||||
|
||||
EXPECT_TRUE(testEntitySelected);
|
||||
EXPECT_TRUE(anyEntitySelected);
|
||||
EXPECT_EQ(selectedEntitiesCount, 1);
|
||||
EXPECT_EQ(selectedEntityIds.size(), 1);
|
||||
EXPECT_EQ(selectedEntityIds.front(), testEntityId);
|
||||
|
||||
@@ -100,11 +105,15 @@ namespace UnitTest
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
anyEntitySelected, &ToolsApplicationRequests::AreAnyEntitiesSelected);
|
||||
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntitiesCount, &ToolsApplicationRequests::GetSelectedEntitiesCount);
|
||||
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntityIds, &ToolsApplicationRequests::GetSelectedEntities);
|
||||
|
||||
EXPECT_FALSE(testEntitySelected);
|
||||
EXPECT_FALSE(anyEntitySelected);
|
||||
EXPECT_EQ(selectedEntitiesCount, 0);
|
||||
EXPECT_TRUE(selectedEntityIds.empty());
|
||||
}
|
||||
|
||||
@@ -141,11 +150,16 @@ namespace UnitTest
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
anyEntitySelected, &ToolsApplicationRequests::AreAnyEntitiesSelected);
|
||||
|
||||
int selectedEntitiesCount = 0;
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntitiesCount, &ToolsApplicationRequests::GetSelectedEntitiesCount);
|
||||
|
||||
EntityIdList actualSelectedEntityIds;
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
actualSelectedEntityIds, &ToolsApplicationRequests::GetSelectedEntities);
|
||||
|
||||
EXPECT_TRUE(anyEntitySelected);
|
||||
EXPECT_EQ(selectedEntitiesCount, expectedSelectedEntityIds.size());
|
||||
EXPECT_EQ(actualSelectedEntityIds.size(), expectedSelectedEntityIds.size());
|
||||
for (auto& id : expectedSelectedEntityIds)
|
||||
{
|
||||
@@ -160,10 +174,14 @@ namespace UnitTest
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
anyEntitySelected, &ToolsApplicationRequests::AreAnyEntitiesSelected);
|
||||
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntitiesCount, &ToolsApplicationRequests::GetSelectedEntitiesCount);
|
||||
|
||||
ToolsApplicationRequestBus::BroadcastResult(
|
||||
actualSelectedEntityIds, &ToolsApplicationRequests::GetSelectedEntities);
|
||||
|
||||
EXPECT_TRUE(anyEntitySelected);
|
||||
EXPECT_EQ(selectedEntitiesCount, expectedSelectedEntityIds.size());
|
||||
EXPECT_EQ(actualSelectedEntityIds.size(), expectedSelectedEntityIds.size());
|
||||
for (auto& id : expectedSelectedEntityIds)
|
||||
{
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "Include/ITransformManipulator.h"
|
||||
#include "ActionManager.h"
|
||||
#include "Settings.h"
|
||||
#include "Objects/SelectionGroup.h"
|
||||
#include "Include/IObjectManager.h"
|
||||
#include "MathConversion.h"
|
||||
|
||||
@@ -191,10 +190,12 @@ void CInfoBar::IdleUpdate()
|
||||
|
||||
Vec3 marker = GetIEditor()->GetMarkerPosition();
|
||||
|
||||
CSelectionGroup* selection = GetIEditor()->GetSelection();
|
||||
if (selection->GetCount() != m_numSelected)
|
||||
int selectedEntitiesCount = 0;
|
||||
AzToolsFramework::ToolsApplicationRequestBus::BroadcastResult(
|
||||
selectedEntitiesCount, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntitiesCount);
|
||||
if (selectedEntitiesCount != m_numSelected)
|
||||
{
|
||||
m_numSelected = selection->GetCount();
|
||||
m_numSelected = selectedEntitiesCount;
|
||||
updateUI = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user