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

42 lines
1.1 KiB
C++

#include "Composition/EditorWindowWorkspaceStore.h"
#include <algorithm>
#include <utility>
namespace XCEngine::UI::Editor::App {
EditorWindowWorkspaceStore::EditorWindowWorkspaceStore(UIEditorPanelRegistry panelRegistry)
: m_panelRegistry(std::move(panelRegistry)) {}
bool EditorWindowWorkspaceStore::ValidateWindowSet(
const UIEditorWindowWorkspaceSet& windowSet,
std::string& outError) const {
const UIEditorWindowWorkspaceValidationResult validation =
ValidateUIEditorWindowWorkspaceSet(m_panelRegistry, windowSet);
if (!validation.IsValid()) {
outError = validation.message;
return false;
}
outError.clear();
return true;
}
bool EditorWindowWorkspaceStore::TrySetWindowSet(
UIEditorWindowWorkspaceSet windowSet,
std::string& outError) {
if (!ValidateWindowSet(windowSet, outError)) {
return false;
}
m_windowSet = std::move(windowSet);
outError.clear();
return true;
}
bool EditorWindowWorkspaceStore::IsPrimaryWindowId(std::string_view windowId) const {
return !windowId.empty() && m_windowSet.primaryWindowId == windowId;
}
} // namespace XCEngine::UI::Editor::App