diff --git a/AutomatedTesting/Levels/Floof/Floof.ly b/AutomatedTesting/Levels/Floof/Floof.ly
new file mode 100644
index 0000000000..aa7ed0d9db
--- /dev/null
+++ b/AutomatedTesting/Levels/Floof/Floof.ly
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3473284ee7f390280fb71090da8c1754791a3753fc1532e6b6a69842f2d4e23f
+size 8605
diff --git a/AutomatedTesting/Levels/Floof/filelist.xml b/AutomatedTesting/Levels/Floof/filelist.xml
new file mode 100644
index 0000000000..82409c84cd
--- /dev/null
+++ b/AutomatedTesting/Levels/Floof/filelist.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/AutomatedTesting/Levels/Floof/level.pak b/AutomatedTesting/Levels/Floof/level.pak
new file mode 100644
index 0000000000..e9374fe73f
--- /dev/null
+++ b/AutomatedTesting/Levels/Floof/level.pak
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9577257254e5938790ec3445689a9b59bc1715c7f1aaaad81150b9468e72cbfa
+size 1346
diff --git a/AutomatedTesting/Levels/Floof/tags.txt b/AutomatedTesting/Levels/Floof/tags.txt
new file mode 100644
index 0000000000..0d6c1880e7
--- /dev/null
+++ b/AutomatedTesting/Levels/Floof/tags.txt
@@ -0,0 +1,12 @@
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ComponentMode/ComponentModeCollection.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ComponentMode/ComponentModeCollection.cpp
index 0259142135..5527a35f88 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ComponentMode/ComponentModeCollection.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ComponentMode/ComponentModeCollection.cpp
@@ -8,8 +8,8 @@
#include "ComponentModeCollection.h"
-#include
#include
+#include
namespace AzToolsFramework
{
@@ -17,7 +17,7 @@ namespace AzToolsFramework
{
AZ_CLASS_ALLOCATOR_IMPL(ComponentModeCollection, AZ::SystemAllocator, 0)
- static const char* const s_nextActiveComponentModeTitle = "Edit Next";
+ static const char* const s_nextActiveComponentModeTitle = "Edit Next";
static const char* const s_previousActiveComponentModeTitle = "Edit Previous";
static const char* const s_nextActiveComponentModeDesc = "Move to the next component";
static const char* const s_prevActiveComponentModeDesc = "Move to the previous component";
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyEntityIdCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyEntityIdCtrl.cpp
index f98638fd69..7a9a5a4d7a 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyEntityIdCtrl.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyEntityIdCtrl.cpp
@@ -119,11 +119,12 @@ namespace AzToolsFramework
// replace the default input handler with one specific for dealing with
// entity selection in the viewport
+
EditorInteractionSystemViewportSelectionRequestBus::Event(
GetEntityContextId(), &EditorInteractionSystemViewportSelection::SetHandler,
- [](const EditorVisibleEntityDataCache* entityDataCache)
+ [](const EditorVisibleEntityDataCache* entityDataCache, ViewportEditorModeTrackerInterface* viewportEditorModeTracker)
{
- return AZStd::make_unique(entityDataCache);
+ return AZStd::make_unique(entityDataCache, viewportEditorModeTracker);
});
if (!pickModeEntityContextId.IsNull())
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UnitTest/AzToolsFrameworkTestHelpers.h b/Code/Framework/AzToolsFramework/AzToolsFramework/UnitTest/AzToolsFrameworkTestHelpers.h
index b3a660d0f2..a67562af76 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/UnitTest/AzToolsFrameworkTestHelpers.h
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UnitTest/AzToolsFrameworkTestHelpers.h
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -166,7 +167,8 @@ namespace UnitTest
m_editorActions.Connect();
const auto viewportHandlerBuilder =
- [this](const AzToolsFramework::EditorVisibleEntityDataCache* entityDataCache)
+ [this](const AzToolsFramework::EditorVisibleEntityDataCache* entityDataCache,
+ [[maybe_unused]] AzToolsFramework::ViewportEditorModeTrackerInterface* viewportEditorModeTracker)
{
// create the default viewport (handles ComponentMode)
AZStd::unique_ptr defaultSelection =
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.cpp
index 7903668409..0b23756365 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.cpp
@@ -9,6 +9,7 @@
#include "EditorDefaultSelection.h"
#include
+#include
#include
#include
#include
@@ -30,10 +31,25 @@ namespace AzToolsFramework
m_transformComponentSelection = AZStd::make_unique(entityDataCache);
}
+ EditorDefaultSelection::EditorDefaultSelection(
+ const EditorVisibleEntityDataCache* entityDataCache, ViewportEditorModeTrackerInterface* viewportEditorModeTracker)
+ : EditorDefaultSelection(entityDataCache)
+ {
+ m_viewportEditorModeTracker = viewportEditorModeTracker;
+ if (m_viewportEditorModeTracker)
+ {
+ m_viewportEditorModeTracker->ActivateMode({ /* DefaultViewportId */ }, ViewportEditorMode::Default);
+ }
+ }
+
EditorDefaultSelection::~EditorDefaultSelection()
{
ComponentModeFramework::ComponentModeSystemRequestBus::Handler::BusDisconnect();
ActionOverrideRequestBus::Handler::BusDisconnect();
+ if (m_viewportEditorModeTracker)
+ {
+ m_viewportEditorModeTracker->DeactivateMode({ /* DefaultViewportId */ }, ViewportEditorMode::Default);
+ }
}
void EditorDefaultSelection::SetOverridePhantomWidget(QWidget* phantomOverrideWidget)
@@ -91,6 +107,14 @@ namespace AzToolsFramework
m_componentModeCollection.BeginComponentMode();
+ // this call to activate the component mode editor state should eventually replace the bus call in
+ // ComponentModeCollection::BeginComponentMode() to EditorComponentModeNotifications::EnteredComponentMode
+ // such that all of the notifications for activating/deactivating the different editor modes are in a central location
+ if (m_viewportEditorModeTracker)
+ {
+ m_viewportEditorModeTracker->ActivateMode({ /* DefaultViewportId */ }, ViewportEditorMode::Component);
+ }
+
// refresh button ui
ToolsApplicationEvents::Bus::Broadcast(
&ToolsApplicationEvents::Bus::Events::InvalidatePropertyDisplay, PropertyModificationRefreshLevel::Refresh_EntireTree);
@@ -100,6 +124,14 @@ namespace AzToolsFramework
{
m_componentModeCollection.EndComponentMode();
+ // this call to deactivate the component mode editor state should eventually replace the bus call in
+ // ComponentModeCollection::EndComponentMode() to EditorComponentModeNotifications::LeftComponentMode
+ // such that all of the notifications for activating/deactivating the different editor modes are in a central location
+ if (m_viewportEditorModeTracker)
+ {
+ m_viewportEditorModeTracker->DeactivateMode({ /* DefaultViewportId */ }, ViewportEditorMode::Component);
+ }
+
if (m_transformComponentSelection)
{
// safe to show manipulators again
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.h b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.h
index 5763bf227c..6a53a2b186 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.h
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorDefaultSelection.h
@@ -15,6 +15,8 @@
namespace AzToolsFramework
{
+ class ViewportEditorModeTrackerInterface;
+
//! The default selection/input handler for the editor (includes handling ComponentMode).
class EditorDefaultSelection
: public ViewportInteraction::InternalViewportSelectionRequests
@@ -26,6 +28,7 @@ namespace AzToolsFramework
//! @cond
explicit EditorDefaultSelection(const EditorVisibleEntityDataCache* entityDataCache);
+ explicit EditorDefaultSelection(const EditorVisibleEntityDataCache* entityDataCache, ViewportEditorModeTrackerInterface* viewportEditorModeTracker);
EditorDefaultSelection(const EditorDefaultSelection&) = delete;
EditorDefaultSelection& operator=(const EditorDefaultSelection&) = delete;
virtual ~EditorDefaultSelection();
@@ -110,5 +113,7 @@ namespace AzToolsFramework
AZStd::shared_ptr m_manipulatorManager; //!< The default manipulator manager.
ViewportInteraction::MouseInteraction m_currentInteraction; //!< Current mouse interaction to be used for drawing manipulators.
+ ViewportEditorModeTrackerInterface* m_viewportEditorModeTracker = nullptr; //!< Tracker for activating/deactivating viewport editor modes.
+
};
} // namespace AzToolsFramework
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.cpp
index 7002436d13..7f84038ace 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.cpp
@@ -10,9 +10,28 @@
#include
#include
+#include
namespace AzToolsFramework
{
+ EditorInteractionSystemComponent::EditorInteractionSystemComponent()
+ : m_viewportEditorMode(AZStd::make_unique())
+ {
+ if (AZ::Interface::Get() == nullptr)
+ {
+ AZ::Interface::Register(m_viewportEditorMode.get());
+ }
+ }
+
+ EditorInteractionSystemComponent::~EditorInteractionSystemComponent()
+ {
+ m_interactionRequests.reset();
+ if (AZ::Interface::Get() != nullptr)
+ {
+ AZ::Interface::Unregister(m_viewportEditorMode.get());
+ }
+ }
+
void EditorInteractionSystemComponent::Activate()
{
EditorInteractionSystemViewportSelectionRequestBus::Handler::BusConnect(GetEntityContextId());
@@ -41,7 +60,8 @@ namespace AzToolsFramework
return m_interactionRequests->InternalHandleMouseManipulatorInteraction(mouseInteraction);
}
- void EditorInteractionSystemComponent::SetHandler(const ViewportSelectionRequestsBuilderFn& interactionRequestsBuilder)
+ void EditorInteractionSystemComponent::SetHandler(
+ const ViewportSelectionRequestsBuilderFn& interactionRequestsBuilder)
{
// when setting a handler, make sure we're connected to the ViewportDebugDisplayEventBus so we
// can forward calls to the specific type implementing ViewportSelectionRequests
@@ -59,7 +79,7 @@ namespace AzToolsFramework
m_entityDataCache = AZStd::make_unique();
m_interactionRequests.reset(); // BusConnect/Disconnect in constructor/destructor,
// so have to reset before assigning the new one
- m_interactionRequests = interactionRequestsBuilder(m_entityDataCache.get());
+ m_interactionRequests = interactionRequestsBuilder(m_entityDataCache.get(), m_viewportEditorMode.get());
}
EditorInteractionSystemViewportSelectionRequestBus::Handler::BusConnect(GetEntityContextId());
@@ -68,9 +88,9 @@ namespace AzToolsFramework
void EditorInteractionSystemComponent::SetDefaultHandler()
{
SetHandler(
- [](const EditorVisibleEntityDataCache* entityDataCache)
+ [](const EditorVisibleEntityDataCache* entityDataCache, ViewportEditorModeTrackerInterface* viewportEditorModeTracker)
{
- return AZStd::make_unique(entityDataCache);
+ return AZStd::make_unique(entityDataCache, viewportEditorModeTracker);
});
}
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.h b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.h
index 17521eab14..7bbc0ee009 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.h
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemComponent.h
@@ -12,8 +12,18 @@
#include
#include
+
+
+
+
+
+
+#include
+
namespace AzToolsFramework
{
+ //class ViewportEditorModeTracker;
+
//! System Component to wrap active input handler.
//! EditorInteractionSystemComponent is notified of viewport mouse events from RenderViewport
//! and forwards them to a concrete implementation of ViewportSelectionRequests.
@@ -26,6 +36,9 @@ namespace AzToolsFramework
public:
AZ_COMPONENT(EditorInteractionSystemComponent, "{146D0317-AF42-45AB-A953-F54198525DD5}")
+ EditorInteractionSystemComponent();
+ ~EditorInteractionSystemComponent();
+
static void Reflect(AZ::ReflectContext* context);
// EditorInteractionSystemViewportSelectionRequestBus
@@ -54,5 +67,7 @@ namespace AzToolsFramework
AZStd::unique_ptr m_interactionRequests; //!< Hold a concrete implementation of
//!< ViewportSelectionRequests to handle viewport
//!< input and drawing for the Editor.
+
+ AZStd::unique_ptr m_viewportEditorMode; //!< Editor mode tracker for each viewport.
};
} // namespace AzToolsFramework
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemViewportSelectionRequestBus.h b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemViewportSelectionRequestBus.h
index ee3f83f74d..3579460ca0 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemViewportSelectionRequestBus.h
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorInteractionSystemViewportSelectionRequestBus.h
@@ -17,6 +17,7 @@
namespace AzToolsFramework
{
class EditorVisibleEntityDataCache;
+ class ViewportEditorModeTrackerInterface;
//! Bus to handle all mouse events originating from the viewport.
//! Coordinated by the EditorInteractionSystemComponent
@@ -32,8 +33,8 @@ namespace AzToolsFramework
};
//! Alias for factory function to create a new type implementing the ViewportSelectionRequests interface.
- using ViewportSelectionRequestsBuilderFn =
- AZStd::function(const EditorVisibleEntityDataCache*)>;
+ using ViewportSelectionRequestsBuilderFn = AZStd::function(
+ const EditorVisibleEntityDataCache*, ViewportEditorModeTrackerInterface*)>;
//! Interface for system component implementing the ViewportSelectionRequests interface.
//! This interface also includes a setter to set a custom handler also implementing
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.cpp
index ea1bc73056..9306deb69d 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.cpp
@@ -8,6 +8,7 @@
#include "EditorPickEntitySelection.h"
+#include
#include
#include
@@ -20,12 +21,28 @@ namespace AzToolsFramework
{
}
+ EditorPickEntitySelection::EditorPickEntitySelection(
+ const EditorVisibleEntityDataCache* entityDataCache, ViewportEditorModeTrackerInterface* viewportEditorModeTracker)
+ : EditorPickEntitySelection(entityDataCache)
+ {
+ m_viewportEditorModeTracker = viewportEditorModeTracker;
+ if (m_viewportEditorModeTracker)
+ {
+ m_viewportEditorModeTracker->ActivateMode({ /* DefaultViewportId */ }, ViewportEditorMode::Pick);
+ }
+ }
+
EditorPickEntitySelection::~EditorPickEntitySelection()
{
if (m_hoveredEntityId.IsValid())
{
ToolsApplicationRequestBus::Broadcast(&ToolsApplicationRequests::SetEntityHighlighted, m_hoveredEntityId, false);
}
+
+ if (m_viewportEditorModeTracker)
+ {
+ m_viewportEditorModeTracker->DeactivateMode({ /* DefaultViewportId */ }, ViewportEditorMode::Pick);
+ }
}
// note: entityIdUnderCursor is the authoritative entityId we get each frame by querying
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.h b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.h
index e8d83af932..511111743a 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.h
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorPickEntitySelection.h
@@ -13,6 +13,8 @@
namespace AzToolsFramework
{
+ class ViewportEditorModeTrackerInterface;
+
//! Viewport interaction that will handle assigning an entity in the viewport to
//! an entity field in the entity inspector.
class EditorPickEntitySelection : public ViewportInteraction::InternalViewportSelectionRequests
@@ -20,7 +22,9 @@ namespace AzToolsFramework
public:
AZ_CLASS_ALLOCATOR_DECL
- EditorPickEntitySelection(const EditorVisibleEntityDataCache* entityDataCache);
+ explicit EditorPickEntitySelection(const EditorVisibleEntityDataCache* entityDataCache);
+ explicit EditorPickEntitySelection(
+ const EditorVisibleEntityDataCache* entityDataCache, ViewportEditorModeTrackerInterface* viewportEditorModeTracker);
~EditorPickEntitySelection();
private:
@@ -32,5 +36,6 @@ namespace AzToolsFramework
AZStd::unique_ptr m_editorHelpers; //!< Editor visualization of entities (icons, shapes, debug visuals etc).
AZ::EntityId m_hoveredEntityId; //!< What EntityId is the mouse currently hovering over (if any).
AZ::EntityId m_cachedEntityIdUnderCursor; //!< Store the EntityId on each mouse move for use in Display.
+ ViewportEditorModeTrackerInterface* m_viewportEditorModeTracker = nullptr; //!< Tracker for activating/deactivating viewport editor modes.
};
} // namespace AzToolsFramework
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.cpp
index 4adddb02e1..105712c789 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.cpp
@@ -45,22 +45,6 @@ namespace AzToolsFramework
return m_editorModes[static_cast(mode)];
}
- void ViewportEditorModeTracker::RegisterInterface()
- {
- if (AZ::Interface::Get() == nullptr)
- {
- AZ::Interface::Register(this);
- }
- }
-
- void ViewportEditorModeTracker::UnregisterInterface()
- {
- if (AZ::Interface::Get() != nullptr)
- {
- AZ::Interface::Unregister(this);
- }
- }
-
AZ::Outcome ViewportEditorModeTracker::ActivateMode(
const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode)
{
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.h b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.h
index 6ae68b39b2..5b382c44e7 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.h
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/ViewportEditorModeTracker.h
@@ -41,12 +41,6 @@ namespace AzToolsFramework
: public ViewportEditorModeTrackerInterface
{
public:
- //! Registers this object with the AZ::Interface.
- void RegisterInterface();
-
- //! Unregisters this object with the AZ::Interface.
- void UnregisterInterface();
-
// ViewportEditorModeTrackerInterface overrides ...
AZ::Outcome ActivateMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) override;
AZ::Outcome DeactivateMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) override;
diff --git a/Code/Framework/AzToolsFramework/Tests/EditorTransformComponentSelectionTests.cpp b/Code/Framework/AzToolsFramework/Tests/EditorTransformComponentSelectionTests.cpp
index 449c4549be..1316523f29 100644
--- a/Code/Framework/AzToolsFramework/Tests/EditorTransformComponentSelectionTests.cpp
+++ b/Code/Framework/AzToolsFramework/Tests/EditorTransformComponentSelectionTests.cpp
@@ -343,7 +343,8 @@ namespace UnitTest
using AzToolsFramework::EditorInteractionSystemViewportSelectionRequestBus;
EditorInteractionSystemViewportSelectionRequestBus::Event(
AzToolsFramework::GetEntityContextId(), &EditorInteractionSystemViewportSelectionRequestBus::Events::SetHandler,
- [](const AzToolsFramework::EditorVisibleEntityDataCache* entityDataCache)
+ [](const AzToolsFramework::EditorVisibleEntityDataCache* entityDataCache,
+ [[maybe_unused]] AzToolsFramework::ViewportEditorModeTrackerInterface* viewportEditorModeTracker)
{
return AZStd::make_unique(entityDataCache);
});
diff --git a/Code/Framework/AzToolsFramework/Tests/Viewport/ViewportEditorModeTests.cpp b/Code/Framework/AzToolsFramework/Tests/Viewport/ViewportEditorModeTests.cpp
index 3954ef6dc6..b2b75e22a7 100644
--- a/Code/Framework/AzToolsFramework/Tests/Viewport/ViewportEditorModeTests.cpp
+++ b/Code/Framework/AzToolsFramework/Tests/Viewport/ViewportEditorModeTests.cpp
@@ -152,6 +152,12 @@ namespace UnitTest
AZStd::array, ViewportEditorModes::NumEditorModes> m_editorModeHandlers;
};
+ // Fixture for testing the integration of viewport editor mode state tracker
+ class ViewportEditorModeTrackerIntegrationTestFixture
+ : public ToolsApplicationFixture
+ {
+ };
+
TEST_F(ViewportEditorModesTestsFixture, NumberOfEditorModesIsEqualTo4)
{
EXPECT_EQ(ViewportEditorModes::NumEditorModes, 4);
@@ -298,7 +304,7 @@ namespace UnitTest
EXPECT_EQ(m_viewportEditorModeTracker.GetTrackedViewportCount(), 0);
}
- TEST_F(ViewportEditorModeTrackerTestFixture, RegisteringViewportEditorModeForNonExistentIdCreatesViewportEditorModesForThatId)
+ TEST_F(ViewportEditorModeTrackerTestFixture, ActivatingViewportEditorModeForNonExistentIdCreatesViewportEditorModesForThatId)
{
// Given a viewport not currently being tracked
const ViewportId viewportid = 0;
@@ -318,7 +324,7 @@ namespace UnitTest
EXPECT_TRUE(viewportEditorModeState->IsModeActive(editorMode));
}
- TEST_F(ViewportEditorModeTrackerTestFixture, UnregisteringViewportEditorModeForNonExistentIdCreatesViewportEditorModesForThatIdButReturnsError)
+ TEST_F(ViewportEditorModeTrackerTestFixture, DeactivatingViewportEditorModeForNonExistentIdCreatesViewportEditorModesForThatIdButReturnsError)
{
// Given a viewport not currently being tracked
const ViewportId viewportid = 0;
@@ -351,7 +357,7 @@ namespace UnitTest
EXPECT_EQ(m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid }), nullptr);
}
- TEST_F(ViewportEditorModeTrackerTestFixture, RegisteringViewportEditorModesForExistingIdInThatStateReturnsError)
+ TEST_F(ViewportEditorModeTrackerTestFixture, ActivatingViewportEditorModesForExistingIdInThatStateReturnsError)
{
// Given a viewport not currently tracked
const ViewportId viewportid = 0;
@@ -390,7 +396,7 @@ namespace UnitTest
}
}
- TEST_F(ViewportEditorModeTrackerTestFixture, UnregisteringViewportEditorModesForExistingIdNotInThatStateReturnssError)
+ TEST_F(ViewportEditorModeTrackerTestFixture, DeactivatingViewportEditorModesForExistingIdNotInThatStateReturnssError)
{
// Given a viewport not currently tracked
const ViewportId viewportid = 0;
@@ -432,7 +438,7 @@ namespace UnitTest
TEST_F(
ViewportEditorModePublisherTestFixture,
- RegisteringViewportEditorModesForExistingIdPublishesOnViewportEditorModeRegisterEventForAllSubscribers)
+ ActivatingViewportEditorModesForExistingIdPublishesOnViewportEditorModeActivateEventForAllSubscribers)
{
// Given a set of subscribers tracking the editor modes for their exclusive viewport
for (auto mode = 0; mode < ViewportEditorModes::NumEditorModes; mode++)
@@ -465,7 +471,7 @@ namespace UnitTest
TEST_F(
ViewportEditorModePublisherTestFixture,
- UnregisteringViewportEditorModesForExistingIdPublishesOnViewportEditorModeUnregisterEventForAllSubscribers)
+ DeactivatingViewportEditorModesForExistingIdPublishesOnViewportEditorModeDeactivatingEventForAllSubscribers)
{
// Given a set of subscribers tracking the editor modes for their exclusive viewport
for (auto mode = 0; mode < ViewportEditorModes::NumEditorModes; mode++)
@@ -495,4 +501,8 @@ namespace UnitTest
EXPECT_TRUE(expectedEditorModeSet->second.m_onExit);
}
}
+
+ TEST_F(ViewportEditorModeTrackerIntegrationTestFixture, FOO)
+ {
+ }
} // namespace UnitTest