42 lines
1.1 KiB
C++
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
|