Files
XCEngine/editor/app/Composition/WorkspaceEventSync.cpp

32 lines
972 B
C++
Raw Normal View History

#include "Composition/WorkspaceEventSync.h"
#include "Composition/EditorContext.h"
#include <utility>
namespace XCEngine::UI::Editor::App {
std::vector<WorkspaceTraceEntry> SyncWorkspaceEvents(
EditorContext& context,
const std::vector<EditorWorkspacePanelFrameEvent>& panelEvents) {
std::vector<WorkspaceTraceEntry> entries = {};
context.SyncSessionFromSelectionService();
if (const std::optional<std::filesystem::path> scenePath =
context.GetProjectRuntime().ConsumePendingSceneOpenPath();
scenePath.has_value()) {
context.GetSceneRuntime().OpenSceneAsset(scenePath.value());
context.SyncSessionFromSelectionService();
}
for (const EditorWorkspacePanelFrameEvent& event : panelEvents) {
context.SetStatus(event.status, event.message);
entries.push_back(WorkspaceTraceEntry{ event.traceChannel, event.message });
}
return entries;
}
} // namespace XCEngine::UI::Editor::App