载入中...
搜索中...
未找到
EditorProjectSettings.cpp
浏览该文件的文档.
16DomainOperation operation(const std::string& target, const PropertyPath& path, EditorValue value, EditorValue inverse) {
57 return capability == CapabilityId("eve.editor.target.project-settings") ? static_cast<IPropertyProvider*>(this)
61const ProjectSettingDescriptor* ProjectSettingsTarget::descriptor(const PropertyPath& path) const {
72Result<void> ProjectSettingsTarget::applyDomainOperation(const DomainOperation& domainOperation) {
100eve::Result<eve::Revision> ProjectSettingsTarget::currentRevision(const SelectionSnapshot& selection) const {
103 eve::Diagnostic::error(eve::DiagnosticCode::InvalidArgument, "Selection does not match settings target"));
115PropertyReadResult ProjectSettingsTarget::read(const SelectionSnapshot& selection, const PropertyPath& path) const {
119 {eve::editing::ruleDiagnostic(eve::DiagnosticCode::InvalidArgument, RuleId("editor.settings.selection"),
132 if (!reference->empty()) return {PropertyReadState::Value, EditorValue("secret://redacted"), {}};
141 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.settings.selection"),
145 return eve::editing::failed<DomainOperation>(EditorStatus::Unsupported, RuleId("editor.settings.property"),
147 const EditorValue candidate = mode == PropertySetMode::Reset ? setting->property.defaultValue : value;
179 if (!setting.sensitive || (reference && (reference->empty() || reference->starts_with("secret://"))))
200 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.settings.unknown-snapshot-key"),
204 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.settings.invalid-snapshot-value"),
226 {property("content.import-cache", PropertyType::String, ".cache/import"), "filesystem", true, false},
237ProjectSettingsSchema importerSettingsSchema(std::string importerId, std::vector<ProjectSettingDescriptor> settings,
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
const std::string & value() const noexcept
Returns the exact legacy or canonical compatibility spelling.
Definition Identity.h:362
void bumpRevision()
Advance the revision without touching the dirty region.
Definition EditableTarget.h:179
Revision revisionValue() const noexcept
Return the revision as the shared protocol revision type.
Definition EditableTarget.h:169
void widenDirty()
Mark an unknown area dirty without advancing the revision.
Definition EditableTarget.h:177
eve::OptionalRef< C > capability()
Query a capability through its interface-owned stable identity.
Definition EditableTarget.h:82
UI-independent property access for an immutable selection snapshot.
Definition EditingProperty.h:139
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
Schema-driven, reversible settings target with secret-reference enforcement.
Definition EditorProjectSettings.h:34
Result< void > loadSnapshot(const EditorValue &snapshot)
Atomically load matching-schema values.
Definition EditorProjectSettings.cpp:186
Result< DomainOperation > makeReset(const SelectionSnapshot &selection, const PropertyPath &path) const override
Make reset.
Definition EditorProjectSettings.cpp:162
void * queryCapability(const CapabilityId &capability) override
Query an optional target capability.
Definition EditorProjectSettings.cpp:56
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &selection) const override
Current revision.
Definition EditorProjectSettings.cpp:100
EditorValue snapshotValue() const
Capture values without ever serializing raw sensitive values.
Definition EditorProjectSettings.cpp:174
std::vector< PropertyPath > pendingRestart() const
Return settings whose changed values require subsystem restart.
Definition EditorProjectSettings.cpp:167
PropertySchema schema(const SelectionSnapshot &selection) const override
Schema.
Definition EditorProjectSettings.cpp:107
ProjectSettingsTarget(std::string id, ProjectSettingsSchema schema)
Project settings target.
Definition EditorProjectSettings.cpp:42
Result< void > applyDomainOperation(const DomainOperation &operation) override
Applies domain operation.
Definition EditorProjectSettings.cpp:72
PropertyReadResult read(const SelectionSnapshot &selection, const PropertyPath &path) const override
Reads .
Definition EditorProjectSettings.cpp:115
Result< DomainOperation > makeSet(const SelectionSnapshot &selection, const PropertyPath &path, const EditorValue &value, PropertySetMode mode) const override
Make set.
Definition EditorProjectSettings.cpp:137
Result< void > noOp(std::vector< Diagnostic > diagnostics={})
Construct a successful void result for an operation that made no change.
Definition EditingResult.h:58
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
Definition ActionPreviewController.cpp:6
eve::editing::Value EditorValue
Compatibility alias for the UI-independent authoring value tree.
Definition EditorValue.h:8
eve::editing::PropertyDescriptor PropertyDescriptor
Definition EditorProperty.h:17
eve::editing::SelectionSnapshot SelectionSnapshot
Immutable multi-selection captured for property and command work.
Definition EditorSelection.h:25
ProjectSettingsSchema importerSettingsSchema(std::string importerId, std::vector< ProjectSettingDescriptor > settings, std::uint32_t version)
Create per-importer settings without hard-coding a presenter.
Definition EditorProjectSettings.cpp:237
eve::editing::DomainOperation DomainOperation
Definition EditorProtocol.h:12
ProjectSettingsSchema defaultProjectSettingsSchema()
Common engine project settings covering content, network and database boundaries.
Definition EditorProjectSettings.cpp:221
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
@ PreconditionViolation
Definition Container.h:602
std::vector< PropertyDescriptor > properties
Definition EditingProperty.h:120
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39
Project-setting descriptor with deployment and secrecy policy.
Definition EditorProjectSettings.h:16
Versioned settings schema shared by project and importer documents.
Definition EditorProjectSettings.h:24
std::vector< ProjectSettingDescriptor > settings
Definition EditorProjectSettings.h:27
std::uint32_t version
Definition EditorProjectSettings.h:26