32 lines
972 B
C++
32 lines
972 B
C++
#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
|
|
|
|
|