Refine editor frame services seam
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
#include "Inspector/Components/IInspectorComponentEditor.h"
|
||||
#include "Inspector/Components/InspectorComponentEditorRegistry.h"
|
||||
#include "Scene/EditorSceneRuntime.h"
|
||||
#include "Windowing/EditorFrameServices.h"
|
||||
|
||||
#include <XCEditor/Fields/UIEditorFieldStyle.h>
|
||||
|
||||
@@ -123,9 +122,7 @@ void AddComponentPanel::RebuildEntries(
|
||||
}
|
||||
}
|
||||
|
||||
bool AddComponentPanel::TryActivateEntry(
|
||||
EditorSceneRuntime& sceneRuntime,
|
||||
std::size_t entryIndex) {
|
||||
bool AddComponentPanel::TryActivateEntry(std::size_t entryIndex) {
|
||||
if (entryIndex >= m_entries.size()) {
|
||||
return false;
|
||||
}
|
||||
@@ -135,14 +132,14 @@ bool AddComponentPanel::TryActivateEntry(
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!sceneRuntime.AddComponentToSelectedGameObject(entry.componentTypeName)) {
|
||||
if (!m_sceneRuntime.AddComponentToSelectedGameObject(entry.componentTypeName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const std::optional<EditorSceneObjectSnapshot> selectedObject =
|
||||
sceneRuntime.GetSelectedObjectSnapshot();
|
||||
m_sceneRuntime.GetSelectedObjectSnapshot();
|
||||
m_hasTarget = selectedObject.has_value();
|
||||
m_targetDisplayName = sceneRuntime.GetSelectedDisplayName();
|
||||
m_targetDisplayName = m_sceneRuntime.GetSelectedDisplayName();
|
||||
RebuildEntries(selectedObject.has_value() ? &selectedObject.value() : nullptr);
|
||||
return true;
|
||||
}
|
||||
@@ -158,7 +155,6 @@ std::size_t AddComponentPanel::HitTestEntry(const UIPoint& point) const {
|
||||
}
|
||||
|
||||
void AddComponentPanel::Update(
|
||||
EditorFrameServices& frameServices,
|
||||
const EditorUtilityWindowHostContext& hostContext,
|
||||
const std::vector<UIInputEvent>& inputEvents) {
|
||||
if (!hostContext.mounted) {
|
||||
@@ -166,13 +162,12 @@ void AddComponentPanel::Update(
|
||||
return;
|
||||
}
|
||||
|
||||
EditorSceneRuntime& sceneRuntime = frameServices.GetSceneRuntime();
|
||||
m_visible = true;
|
||||
m_bounds = hostContext.bounds;
|
||||
const std::optional<EditorSceneObjectSnapshot> selectedObject =
|
||||
sceneRuntime.GetSelectedObjectSnapshot();
|
||||
m_sceneRuntime.GetSelectedObjectSnapshot();
|
||||
m_hasTarget = selectedObject.has_value();
|
||||
m_targetDisplayName = sceneRuntime.GetSelectedDisplayName();
|
||||
m_targetDisplayName = m_sceneRuntime.GetSelectedDisplayName();
|
||||
RebuildEntries(selectedObject.has_value() ? &selectedObject.value() : nullptr);
|
||||
|
||||
if (hostContext.focusLost) {
|
||||
@@ -211,7 +206,7 @@ void AddComponentPanel::Update(
|
||||
m_hoveredEntryIndex = HitTestEntry(event.position);
|
||||
if (m_pressedEntryIndex != kInvalidEntryIndex &&
|
||||
m_pressedEntryIndex == m_hoveredEntryIndex) {
|
||||
TryActivateEntry(sceneRuntime, m_pressedEntryIndex);
|
||||
TryActivateEntry(m_pressedEntryIndex);
|
||||
}
|
||||
m_pressedEntryIndex = kInvalidEntryIndex;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user