Checkpoint workspace changes

This commit is contained in:
2026-04-29 01:24:21 +08:00
parent 9b6adf1806
commit ef11651ec2
67 changed files with 3161 additions and 1904 deletions

View File

@@ -8,6 +8,7 @@
#include <algorithm>
#include <cmath>
#include <optional>
#include <string_view>
namespace XCEngine::UI::Editor::App {
@@ -83,7 +84,7 @@ void AddComponentPanel::ResetInteractionState() {
}
void AddComponentPanel::RebuildEntries(
const ::XCEngine::Components::GameObject* gameObject) {
const EditorSceneObjectSnapshot* gameObject) {
const auto& editors = InspectorComponentEditorRegistry::Get().GetEditors();
m_entries.clear();
m_entries.reserve(editors.size());
@@ -137,9 +138,11 @@ bool AddComponentPanel::TryActivateEntry(
return false;
}
m_hasTarget = services.sceneRuntime.GetSelectedGameObject() != nullptr;
const std::optional<EditorSceneObjectSnapshot> selectedObject =
services.sceneRuntime.GetSelectedObjectSnapshot();
m_hasTarget = selectedObject.has_value();
m_targetDisplayName = services.sceneRuntime.GetSelectedDisplayName();
RebuildEntries(services.sceneRuntime.GetSelectedGameObject());
RebuildEntries(selectedObject.has_value() ? &selectedObject.value() : nullptr);
return true;
}
@@ -164,9 +167,11 @@ void AddComponentPanel::Update(
m_visible = true;
m_bounds = hostContext.bounds;
m_hasTarget = services.sceneRuntime.GetSelectedGameObject() != nullptr;
const std::optional<EditorSceneObjectSnapshot> selectedObject =
services.sceneRuntime.GetSelectedObjectSnapshot();
m_hasTarget = selectedObject.has_value();
m_targetDisplayName = services.sceneRuntime.GetSelectedDisplayName();
RebuildEntries(services.sceneRuntime.GetSelectedGameObject());
RebuildEntries(selectedObject.has_value() ? &selectedObject.value() : nullptr);
if (hostContext.focusLost) {
ResetInteractionState();